function setEqHeight() {
    jq(".events-section .side").matchHeight();
    jq(".action-boxes .box-item:visible .box").matchHeight();
    jq(".courses-area .box").matchHeight();
    jq(".person-box").matchHeight();
    jq(".course-box .module-box").matchHeight();
    jq(".history-items .history-item").matchHeight();
    jq(".course-box .img, .course-box .side-offset").matchHeight({byRow: !1})
}

function setHeightImageWidgetCell() {
    jq(".box-item").not(".big-box").find(".info-banner.without-top-icon").each(function () {
        var n = jq(this);
        n.find(".block").outerHeight(n.outerHeight())
    })
}

if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery");
+function (n) {
    "use strict";
    var t = n.fn.jquery.split(" ")[0].split(".");
    if (t[0] < 2 && t[1] < 9 || 1 == t[0] && 9 == t[1] && t[2] < 1 || t[0] > 3) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4");
}(jQuery);
+function (n) {
    "use strict";

    function u(i) {
        return this.each(function () {
            var r = n(this), u = r.data("bs.alert");
            u || r.data("bs.alert", u = new t(this));
            "string" == typeof i && u[i].call(r)
        })
    }

    var i = '[data-dismiss="alert"]', t = function (t) {
        n(t).on("click", i, this.close)
    }, r;
    t.VERSION = "3.3.7";
    t.TRANSITION_DURATION = 150;
    t.prototype.close = function (i) {
        function e() {
            r.detach().trigger("closed.bs.alert").remove()
        }

        var f = n(this), u = f.attr("data-target"), r;
        u || (u = f.attr("href"), u = u && u.replace(/.*(?=#[^\s]*$)/, ""));
        r = n("#" === u ? [] : u);
        i && i.preventDefault();
        r.length || (r = f.closest(".alert"));
        r.trigger(i = n.Event("close.bs.alert"));
        i.isDefaultPrevented() || (r.removeClass("in"), n.support.transition && r.hasClass("fade") ? r.one("bsTransitionEnd", e).emulateTransitionEnd(t.TRANSITION_DURATION) : e())
    };
    r = n.fn.alert;
    n.fn.alert = u;
    n.fn.alert.Constructor = t;
    n.fn.alert.noConflict = function () {
        return n.fn.alert = r, this
    };
    n(document).on("click.bs.alert.data-api", i, t.prototype.close)
}(jQuery);
+function (n) {
    "use strict";

    function i(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.button"), f = "object" == typeof i && i;
            r || u.data("bs.button", r = new t(this, f));
            "toggle" == i ? r.toggle() : i && r.setState(i)
        })
    }

    var t = function (i, r) {
        this.$element = n(i);
        this.options = n.extend({}, t.DEFAULTS, r);
        this.isLoading = !1
    }, r;
    t.VERSION = "3.3.7";
    t.DEFAULTS = {loadingText: "loading..."};
    t.prototype.setState = function (t) {
        var i = "disabled", r = this.$element, f = r.is("input") ? "val" : "html", u = r.data();
        t += "Text";
        null == u.resetText && r.data("resetText", r[f]());
        setTimeout(n.proxy(function () {
            r[f](null == u[t] ? this.options[t] : u[t]);
            "loadingText" == t ? (this.isLoading = !0, r.addClass(i).attr(i, i).prop(i, !0)) : this.isLoading && (this.isLoading = !1, r.removeClass(i).removeAttr(i).prop(i, !1))
        }, this), 0)
    };
    t.prototype.toggle = function () {
        var t = !0, i = this.$element.closest('[data-toggle="buttons"]'), n;
        i.length ? (n = this.$element.find("input"), "radio" == n.prop("type") ? (n.prop("checked") && (t = !1), i.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == n.prop("type") && (n.prop("checked") !== this.$element.hasClass("active") && (t = !1), this.$element.toggleClass("active")), n.prop("checked", this.$element.hasClass("active")), t && n.trigger("change")) : (this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active"))
    };
    r = n.fn.button;
    n.fn.button = i;
    n.fn.button.Constructor = t;
    n.fn.button.noConflict = function () {
        return n.fn.button = r, this
    };
    n(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (t) {
        var r = n(t.target).closest(".btn");
        i.call(r, "toggle");
        n(t.target).is('input[type="radio"], input[type="checkbox"]') || (t.preventDefault(), r.is("input,button") ? r.trigger("focus") : r.find("input:visible,button:visible").first().trigger("focus"))
    }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (t) {
        n(t.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(t.type))
    })
}(jQuery);
+function (n) {
    "use strict";

    function i(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.carousel"),
                f = n.extend({}, t.DEFAULTS, u.data(), "object" == typeof i && i),
                e = "string" == typeof i ? i : f.slide;
            r || u.data("bs.carousel", r = new t(this, f));
            "number" == typeof i ? r.to(i) : e ? r[e]() : f.interval && r.pause().cycle()
        })
    }

    var t = function (t, i) {
        this.$element = n(t);
        this.$indicators = this.$element.find(".carousel-indicators");
        this.options = i;
        this.paused = null;
        this.sliding = null;
        this.interval = null;
        this.$active = null;
        this.$items = null;
        this.options.keyboard && this.$element.on("keydown.bs.carousel", n.proxy(this.keydown, this));
        "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", n.proxy(this.pause, this)).on("mouseleave.bs.carousel", n.proxy(this.cycle, this))
    }, u, r;
    t.VERSION = "3.3.7";
    t.TRANSITION_DURATION = 600;
    t.DEFAULTS = {interval: 5e3, pause: "hover", wrap: !0, keyboard: !0};
    t.prototype.keydown = function (n) {
        if (!/input|textarea/i.test(n.target.tagName)) {
            switch (n.which) {
                case 37:
                    this.prev();
                    break;
                case 39:
                    this.next();
                    break;
                default:
                    return
            }
            n.preventDefault()
        }
    };
    t.prototype.cycle = function (t) {
        return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(n.proxy(this.next, this), this.options.interval)), this
    };
    t.prototype.getItemIndex = function (n) {
        return this.$items = n.parent().children(".item"), this.$items.index(n || this.$active)
    };
    t.prototype.getItemForDirection = function (n, t) {
        var i = this.getItemIndex(t), f = "prev" == n && 0 === i || "next" == n && i == this.$items.length - 1, r, u;
        return f && !this.options.wrap ? t : (r = "prev" == n ? -1 : 1, u = (i + r) % this.$items.length, this.$items.eq(u))
    };
    t.prototype.to = function (n) {
        var i = this, t = this.getItemIndex(this.$active = this.$element.find(".item.active"));
        if (!(n > this.$items.length - 1) && !(0 > n)) return this.sliding ? this.$element.one("slid.bs.carousel", function () {
            i.to(n)
        }) : t == n ? this.pause().cycle() : this.slide(n > t ? "next" : "prev", this.$items.eq(n))
    };
    t.prototype.pause = function (t) {
        return t || (this.paused = !0), this.$element.find(".next, .prev").length && n.support.transition && (this.$element.trigger(n.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
    };
    t.prototype.next = function () {
        if (!this.sliding) return this.slide("next")
    };
    t.prototype.prev = function () {
        if (!this.sliding) return this.slide("prev")
    };
    t.prototype.slide = function (i, r) {
        var e = this.$element.find(".item.active"), u = r || this.getItemForDirection(i, e), l = this.interval,
            f = "next" == i ? "left" : "right", a = this, o, s, h, c;
        return u.hasClass("active") ? this.sliding = !1 : (o = u[0], s = n.Event("slide.bs.carousel", {
            relatedTarget: o,
            direction: f
        }), (this.$element.trigger(s), !s.isDefaultPrevented()) ? ((this.sliding = !0, l && this.pause(), this.$indicators.length) && (this.$indicators.find(".active").removeClass("active"), h = n(this.$indicators.children()[this.getItemIndex(u)]), h && h.addClass("active")), c = n.Event("slid.bs.carousel", {
            relatedTarget: o,
            direction: f
        }), n.support.transition && this.$element.hasClass("slide") ? (u.addClass(i), u[0].offsetWidth, e.addClass(f), u.addClass(f), e.one("bsTransitionEnd", function () {
            u.removeClass([i, f].join(" ")).addClass("active");
            e.removeClass(["active", f].join(" "));
            a.sliding = !1;
            setTimeout(function () {
                a.$element.trigger(c)
            }, 0)
        }).emulateTransitionEnd(t.TRANSITION_DURATION)) : (e.removeClass("active"), u.addClass("active"), this.sliding = !1, this.$element.trigger(c)), l && this.cycle(), this) : void 0)
    };
    u = n.fn.carousel;
    n.fn.carousel = i;
    n.fn.carousel.Constructor = t;
    n.fn.carousel.noConflict = function () {
        return n.fn.carousel = u, this
    };
    r = function (t) {
        var o, r = n(this), u = n(r.attr("data-target") || (o = r.attr("href")) && o.replace(/.*(?=#[^\s]+$)/, "")), e,
            f;
        u.hasClass("carousel") && (e = n.extend({}, u.data(), r.data()), f = r.attr("data-slide-to"), f && (e.interval = !1), i.call(u, e), f && u.data("bs.carousel").to(f), t.preventDefault())
    };
    n(document).on("click.bs.carousel.data-api", "[data-slide]", r).on("click.bs.carousel.data-api", "[data-slide-to]", r);
    n(window).on("load", function () {
        n('[data-ride="carousel"]').each(function () {
            var t = n(this);
            i.call(t, t.data())
        })
    })
}(jQuery);
+function (n) {
    "use strict";

    function r(t) {
        var i = t.attr("data-target"), r;
        return i || (i = t.attr("href"), i = i && /#[A-Za-z]/.test(i) && i.replace(/.*(?=#[^\s]*$)/, "")), r = i && n(i), r && r.length ? r : t.parent()
    }

    function u(t) {
        t && 3 === t.which || (n(o).remove(), n(i).each(function () {
            var u = n(this), i = r(u), f = {relatedTarget: this};
            i.hasClass("open") && (t && "click" == t.type && /input|textarea/i.test(t.target.tagName) && n.contains(i[0], t.target) || (i.trigger(t = n.Event("hide.bs.dropdown", f)), t.isDefaultPrevented() || (u.attr("aria-expanded", "false"), i.removeClass("open").trigger(n.Event("hidden.bs.dropdown", f)))))
        }))
    }

    function e(i) {
        return this.each(function () {
            var r = n(this), u = r.data("bs.dropdown");
            u || r.data("bs.dropdown", u = new t(this));
            "string" == typeof i && u[i].call(r)
        })
    }

    var o = ".dropdown-backdrop", i = '[data-toggle="dropdown"]', t = function (t) {
        n(t).on("click.bs.dropdown", this.toggle)
    }, f;
    t.VERSION = "3.3.7";
    t.prototype.toggle = function (t) {
        var f = n(this), i, o, e;
        if (!f.is(".disabled, :disabled")) {
            if (i = r(f), o = i.hasClass("open"), u(), !o) {
                if ("ontouchstart" in document.documentElement && !i.closest(".navbar-nav").length && n(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(n(this)).on("click", u), e = {relatedTarget: this}, i.trigger(t = n.Event("show.bs.dropdown", e)), t.isDefaultPrevented()) return;
                f.trigger("focus").attr("aria-expanded", "true");
                i.toggleClass("open").trigger(n.Event("shown.bs.dropdown", e))
            }
            return !1
        }
    };
    t.prototype.keydown = function (t) {
        var e, o, s, h, f, u;
        if (/(38|40|27|32)/.test(t.which) && !/input|textarea/i.test(t.target.tagName) && (e = n(this), t.preventDefault(), t.stopPropagation(), !e.is(".disabled, :disabled"))) {
            if (o = r(e), s = o.hasClass("open"), !s && 27 != t.which || s && 27 == t.which) return 27 == t.which && o.find(i).trigger("focus"), e.trigger("click");
            h = " li:not(.disabled):visible a";
            f = o.find(".dropdown-menu" + h);
            f.length && (u = f.index(t.target), 38 == t.which && u > 0 && u--, 40 == t.which && u < f.length - 1 && u++, ~u || (u = 0), f.eq(u).trigger("focus"))
        }
    };
    f = n.fn.dropdown;
    n.fn.dropdown = e;
    n.fn.dropdown.Constructor = t;
    n.fn.dropdown.noConflict = function () {
        return n.fn.dropdown = f, this
    };
    n(document).on("click.bs.dropdown.data-api", u).on("click.bs.dropdown.data-api", ".dropdown form", function (n) {
        n.stopPropagation()
    }).on("click.bs.dropdown.data-api", i, t.prototype.toggle).on("keydown.bs.dropdown.data-api", i, t.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", t.prototype.keydown)
}(jQuery);
+function (n) {
    "use strict";

    function i(i, r) {
        return this.each(function () {
            var f = n(this), u = f.data("bs.modal"), e = n.extend({}, t.DEFAULTS, f.data(), "object" == typeof i && i);
            u || f.data("bs.modal", u = new t(this, e));
            "string" == typeof i ? u[i](r) : e.show && u.show(r)
        })
    }

    var t = function (t, i) {
        this.options = i;
        this.$body = n(document.body);
        this.$element = n(t);
        this.$dialog = this.$element.find(".modal-dialog");
        this.$backdrop = null;
        this.isShown = null;
        this.originalBodyPad = null;
        this.scrollbarWidth = 0;
        this.ignoreBackdropClick = !1;
        this.options.remote && this.$element.find(".modal-content").load(this.options.remote, n.proxy(function () {
            this.$element.trigger("loaded.bs.modal")
        }, this))
    }, r;
    t.VERSION = "3.3.7";
    t.TRANSITION_DURATION = 300;
    t.BACKDROP_TRANSITION_DURATION = 150;
    t.DEFAULTS = {backdrop: !0, keyboard: !0, show: !0};
    t.prototype.toggle = function (n) {
        return this.isShown ? this.hide() : this.show(n)
    };
    t.prototype.show = function (i) {
        var r = this, u = n.Event("show.bs.modal", {relatedTarget: i});
        this.$element.trigger(u);
        this.isShown || u.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', n.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () {
            r.$element.one("mouseup.dismiss.bs.modal", function (t) {
                n(t.target).is(r.$element) && (r.ignoreBackdropClick = !0)
            })
        }), this.backdrop(function () {
            var f = n.support.transition && r.$element.hasClass("fade"), u;
            r.$element.parent().length || r.$element.appendTo(r.$body);
            r.$element.show().scrollTop(0);
            r.adjustDialog();
            f && r.$element[0].offsetWidth;
            r.$element.addClass("in");
            r.enforceFocus();
            u = n.Event("shown.bs.modal", {relatedTarget: i});
            f ? r.$dialog.one("bsTransitionEnd", function () {
                r.$element.trigger("focus").trigger(u)
            }).emulateTransitionEnd(t.TRANSITION_DURATION) : r.$element.trigger("focus").trigger(u)
        }))
    };
    t.prototype.hide = function (i) {
        i && i.preventDefault();
        i = n.Event("hide.bs.modal");
        this.$element.trigger(i);
        this.isShown && !i.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), n(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), n.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", n.proxy(this.hideModal, this)).emulateTransitionEnd(t.TRANSITION_DURATION) : this.hideModal())
    };
    t.prototype.enforceFocus = function () {
        n(document).off("focusin.bs.modal").on("focusin.bs.modal", n.proxy(function (n) {
            document === n.target || this.$element[0] === n.target || this.$element.has(n.target).length || this.$element.trigger("focus")
        }, this))
    };
    t.prototype.escape = function () {
        this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", n.proxy(function (n) {
            27 == n.which && this.hide()
        }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal")
    };
    t.prototype.resize = function () {
        this.isShown ? n(window).on("resize.bs.modal", n.proxy(this.handleUpdate, this)) : n(window).off("resize.bs.modal")
    };
    t.prototype.hideModal = function () {
        var n = this;
        this.$element.hide();
        this.backdrop(function () {
            n.$body.removeClass("modal-open");
            n.resetAdjustments();
            n.resetScrollbar();
            n.$element.trigger("hidden.bs.modal")
        })
    };
    t.prototype.removeBackdrop = function () {
        this.$backdrop && this.$backdrop.remove();
        this.$backdrop = null
    };
    t.prototype.backdrop = function (i) {
        var e = this, f = this.$element.hasClass("fade") ? "fade" : "", r, u;
        if (this.isShown && this.options.backdrop) {
            if (r = n.support.transition && f, this.$backdrop = n(document.createElement("div")).addClass("modal-backdrop " + f).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", n.proxy(function (n) {
                return this.ignoreBackdropClick ? void(this.ignoreBackdropClick = !1) : void(n.target === n.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()))
            }, this)), r && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !i) return;
            r ? this.$backdrop.one("bsTransitionEnd", i).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION) : i()
        } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), u = function () {
            e.removeBackdrop();
            i && i()
        }, n.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", u).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION) : u()) : i && i()
    };
    t.prototype.handleUpdate = function () {
        this.adjustDialog()
    };
    t.prototype.adjustDialog = function () {
        var n = this.$element[0].scrollHeight > document.documentElement.clientHeight;
        this.$element.css({
            paddingLeft: !this.bodyIsOverflowing && n ? this.scrollbarWidth : "",
            paddingRight: this.bodyIsOverflowing && !n ? this.scrollbarWidth : ""
        })
    };
    t.prototype.resetAdjustments = function () {
        this.$element.css({paddingLeft: "", paddingRight: ""})
    };
    t.prototype.checkScrollbar = function () {
        var n = window.innerWidth, t;
        n || (t = document.documentElement.getBoundingClientRect(), n = t.right - Math.abs(t.left));
        this.bodyIsOverflowing = document.body.clientWidth < n;
        this.scrollbarWidth = this.measureScrollbar()
    };
    t.prototype.setScrollbar = function () {
        var n = parseInt(this.$body.css("padding-right") || 0, 10);
        this.originalBodyPad = document.body.style.paddingRight || "";
        this.bodyIsOverflowing && this.$body.css("padding-right", n + this.scrollbarWidth)
    };
    t.prototype.resetScrollbar = function () {
        this.$body.css("padding-right", this.originalBodyPad)
    };
    t.prototype.measureScrollbar = function () {
        var n = document.createElement("div"), t;
        return n.className = "modal-scrollbar-measure", this.$body.append(n), t = n.offsetWidth - n.clientWidth, this.$body[0].removeChild(n), t
    };
    r = n.fn.modal;
    n.fn.modal = i;
    n.fn.modal.Constructor = t;
    n.fn.modal.noConflict = function () {
        return n.fn.modal = r, this
    };
    n(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (t) {
        var r = n(this), f = r.attr("href"), u = n(r.attr("data-target") || f && f.replace(/.*(?=#[^\s]+$)/, "")),
            e = u.data("bs.modal") ? "toggle" : n.extend({remote: !/#/.test(f) && f}, u.data(), r.data());
        r.is("a") && t.preventDefault();
        u.one("show.bs.modal", function (n) {
            n.isDefaultPrevented() || u.one("hidden.bs.modal", function () {
                r.is(":visible") && r.trigger("focus")
            })
        });
        i.call(u, e, this)
    })
}(jQuery);
+function (n) {
    "use strict";

    function r(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.tooltip"), f = "object" == typeof i && i;
            !r && /destroy|hide/.test(i) || (r || u.data("bs.tooltip", r = new t(this, f)), "string" == typeof i && r[i]())
        })
    }

    var t = function (n, t) {
        this.type = null;
        this.options = null;
        this.enabled = null;
        this.timeout = null;
        this.hoverState = null;
        this.$element = null;
        this.inState = null;
        this.init("tooltip", n, t)
    }, i;
    t.VERSION = "3.3.7";
    t.TRANSITION_DURATION = 150;
    t.DEFAULTS = {
        animation: !0,
        placement: "top",
        selector: !1,
        template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"><\/div><div class="tooltip-inner"><\/div><\/div>',
        trigger: "hover focus",
        title: "",
        delay: 0,
        html: !1,
        container: !1,
        viewport: {selector: "body", padding: 0}
    };
    t.prototype.init = function (t, i, r) {
        var f, e, u, o, s;
        if (this.enabled = !0, this.type = t, this.$element = n(i), this.options = this.getOptions(r), this.$viewport = this.options.viewport && n(n.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = {
            click: !1,
            hover: !1,
            focus: !1
        }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!");
        for (f = this.options.trigger.split(" "), e = f.length; e--;) if (u = f[e], "click" == u) this.$element.on("click." + this.type, this.options.selector, n.proxy(this.toggle, this)); else "manual" != u && (o = "hover" == u ? "mouseenter" : "focusin", s = "hover" == u ? "mouseleave" : "focusout", this.$element.on(o + "." + this.type, this.options.selector, n.proxy(this.enter, this)), this.$element.on(s + "." + this.type, this.options.selector, n.proxy(this.leave, this)));
        this.options.selector ? this._options = n.extend({}, this.options, {
            trigger: "manual",
            selector: ""
        }) : this.fixTitle()
    };
    t.prototype.getDefaults = function () {
        return t.DEFAULTS
    };
    t.prototype.getOptions = function (t) {
        return t = n.extend({}, this.getDefaults(), this.$element.data(), t), t.delay && "number" == typeof t.delay && (t.delay = {
            show: t.delay,
            hide: t.delay
        }), t
    };
    t.prototype.getDelegateOptions = function () {
        var t = {}, i = this.getDefaults();
        return this._options && n.each(this._options, function (n, r) {
            i[n] != r && (t[n] = r)
        }), t
    };
    t.prototype.enter = function (t) {
        var i = t instanceof this.constructor ? t : n(t.currentTarget).data("bs." + this.type);
        return i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), n(t.currentTarget).data("bs." + this.type, i)), t instanceof n.Event && (i.inState["focusin" == t.type ? "focus" : "hover"] = !0), i.tip().hasClass("in") || "in" == i.hoverState ? void(i.hoverState = "in") : (clearTimeout(i.timeout), i.hoverState = "in", i.options.delay && i.options.delay.show ? void(i.timeout = setTimeout(function () {
            "in" == i.hoverState && i.show()
        }, i.options.delay.show)) : i.show())
    };
    t.prototype.isInStateTrue = function () {
        for (var n in this.inState) if (this.inState[n]) return !0;
        return !1
    };
    t.prototype.leave = function (t) {
        var i = t instanceof this.constructor ? t : n(t.currentTarget).data("bs." + this.type);
        return i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), n(t.currentTarget).data("bs." + this.type, i)), t instanceof n.Event && (i.inState["focusout" == t.type ? "focus" : "hover"] = !1), i.isInStateTrue() ? void 0 : (clearTimeout(i.timeout), i.hoverState = "out", i.options.delay && i.options.delay.hide ? void(i.timeout = setTimeout(function () {
            "out" == i.hoverState && i.hide()
        }, i.options.delay.hide)) : i.hide())
    };
    t.prototype.show = function () {
        var c = n.Event("show.bs." + this.type), l, p, e, w, h;
        if (this.hasContent() && this.enabled) {
            if (this.$element.trigger(c), l = n.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]), c.isDefaultPrevented() || !l) return;
            var u = this, r = this.tip(), a = this.getUID(this.type);
            this.setContent();
            r.attr("id", a);
            this.$element.attr("aria-describedby", a);
            this.options.animation && r.addClass("fade");
            var i = "function" == typeof this.options.placement ? this.options.placement.call(this, r[0], this.$element[0]) : this.options.placement,
                v = /\s?auto?\s?/i, y = v.test(i);
            y && (i = i.replace(v, "") || "top");
            r.detach().css({top: 0, left: 0, display: "block"}).addClass(i).data("bs." + this.type, this);
            this.options.container ? r.appendTo(this.options.container) : r.insertAfter(this.$element);
            this.$element.trigger("inserted.bs." + this.type);
            var f = this.getPosition(), o = r[0].offsetWidth, s = r[0].offsetHeight;
            y && (p = i, e = this.getPosition(this.$viewport), i = "bottom" == i && f.bottom + s > e.bottom ? "top" : "top" == i && f.top - s < e.top ? "bottom" : "right" == i && f.right + o > e.width ? "left" : "left" == i && f.left - o < e.left ? "right" : i, r.removeClass(p).addClass(i));
            w = this.getCalculatedOffset(i, f, o, s);
            this.applyPlacement(w, i);
            h = function () {
                var n = u.hoverState;
                u.$element.trigger("shown.bs." + u.type);
                u.hoverState = null;
                "out" == n && u.leave(u)
            };
            n.support.transition && this.$tip.hasClass("fade") ? r.one("bsTransitionEnd", h).emulateTransitionEnd(t.TRANSITION_DURATION) : h()
        }
    };
    t.prototype.applyPlacement = function (t, i) {
        var r = this.tip(), l = r[0].offsetWidth, e = r[0].offsetHeight, o = parseInt(r.css("margin-top"), 10),
            s = parseInt(r.css("margin-left"), 10), h, f, u;
        isNaN(o) && (o = 0);
        isNaN(s) && (s = 0);
        t.top += o;
        t.left += s;
        n.offset.setOffset(r[0], n.extend({
            using: function (n) {
                r.css({top: Math.round(n.top), left: Math.round(n.left)})
            }
        }, t), 0);
        r.addClass("in");
        h = r[0].offsetWidth;
        f = r[0].offsetHeight;
        "top" == i && f != e && (t.top = t.top + e - f);
        u = this.getViewportAdjustedDelta(i, t, h, f);
        u.left ? t.left += u.left : t.top += u.top;
        var c = /top|bottom/.test(i), a = c ? 2 * u.left - l + h : 2 * u.top - e + f,
            v = c ? "offsetWidth" : "offsetHeight";
        r.offset(t);
        this.replaceArrow(a, r[0][v], c)
    };
    t.prototype.replaceArrow = function (n, t, i) {
        this.arrow().css(i ? "left" : "top", 50 * (1 - n / t) + "%").css(i ? "top" : "left", "")
    };
    t.prototype.setContent = function () {
        var n = this.tip(), t = this.getTitle();
        n.find(".tooltip-inner")[this.options.html ? "html" : "text"](t);
        n.removeClass("fade in top bottom left right")
    };
    t.prototype.hide = function (i) {
        function f() {
            "in" != r.hoverState && u.detach();
            r.$element && r.$element.removeAttr("aria-describedby").trigger("hidden.bs." + r.type);
            i && i()
        }

        var r = this, u = n(this.$tip), e = n.Event("hide.bs." + this.type);
        return this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (u.removeClass("in"), n.support.transition && u.hasClass("fade") ? u.one("bsTransitionEnd", f).emulateTransitionEnd(t.TRANSITION_DURATION) : f(), this.hoverState = null, this)
    };
    t.prototype.fixTitle = function () {
        var n = this.$element;
        (n.attr("title") || "string" != typeof n.attr("data-original-title")) && n.attr("data-original-title", n.attr("title") || "").attr("title", "")
    };
    t.prototype.hasContent = function () {
        return this.getTitle()
    };
    t.prototype.getPosition = function (t) {
        t = t || this.$element;
        var r = t[0], u = "BODY" == r.tagName, i = r.getBoundingClientRect();
        null == i.width && (i = n.extend({}, i, {width: i.right - i.left, height: i.bottom - i.top}));
        var f = window.SVGElement && r instanceof window.SVGElement, e = u ? {top: 0, left: 0} : f ? null : t.offset(),
            o = {scroll: u ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop()},
            s = u ? {width: n(window).width(), height: n(window).height()} : null;
        return n.extend({}, i, o, s, e)
    };
    t.prototype.getCalculatedOffset = function (n, t, i, r) {
        return "bottom" == n ? {
            top: t.top + t.height,
            left: t.left + t.width / 2 - i / 2
        } : "top" == n ? {
            top: t.top - r,
            left: t.left + t.width / 2 - i / 2
        } : "left" == n ? {top: t.top + t.height / 2 - r / 2, left: t.left - i} : {
            top: t.top + t.height / 2 - r / 2,
            left: t.left + t.width
        }
    };
    t.prototype.getViewportAdjustedDelta = function (n, t, i, r) {
        var f = {top: 0, left: 0}, e, u, o, s, h, c;
        return this.$viewport ? (e = this.options.viewport && this.options.viewport.padding || 0, u = this.getPosition(this.$viewport), /right|left/.test(n) ? (o = t.top - e - u.scroll, s = t.top + e - u.scroll + r, o < u.top ? f.top = u.top - o : s > u.top + u.height && (f.top = u.top + u.height - s)) : (h = t.left - e, c = t.left + e + i, h < u.left ? f.left = u.left - h : c > u.right && (f.left = u.left + u.width - c)), f) : f
    };
    t.prototype.getTitle = function () {
        var t = this.$element, n = this.options;
        return t.attr("data-original-title") || ("function" == typeof n.title ? n.title.call(t[0]) : n.title)
    };
    t.prototype.getUID = function (n) {
        do n += ~~(1e6 * Math.random()); while (document.getElementById(n));
        return n
    };
    t.prototype.tip = function () {
        if (!this.$tip && (this.$tip = n(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!");
        return this.$tip
    };
    t.prototype.arrow = function () {
        return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
    };
    t.prototype.enable = function () {
        this.enabled = !0
    };
    t.prototype.disable = function () {
        this.enabled = !1
    };
    t.prototype.toggleEnabled = function () {
        this.enabled = !this.enabled
    };
    t.prototype.toggle = function (t) {
        var i = this;
        t && (i = n(t.currentTarget).data("bs." + this.type), i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), n(t.currentTarget).data("bs." + this.type, i)));
        t ? (i.inState.click = !i.inState.click, i.isInStateTrue() ? i.enter(i) : i.leave(i)) : i.tip().hasClass("in") ? i.leave(i) : i.enter(i)
    };
    t.prototype.destroy = function () {
        var n = this;
        clearTimeout(this.timeout);
        this.hide(function () {
            n.$element.off("." + n.type).removeData("bs." + n.type);
            n.$tip && n.$tip.detach();
            n.$tip = null;
            n.$arrow = null;
            n.$viewport = null;
            n.$element = null
        })
    };
    i = n.fn.tooltip;
    n.fn.tooltip = r;
    n.fn.tooltip.Constructor = t;
    n.fn.tooltip.noConflict = function () {
        return n.fn.tooltip = i, this
    }
}(jQuery);
+function (n) {
    "use strict";

    function r(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.popover"), f = "object" == typeof i && i;
            !r && /destroy|hide/.test(i) || (r || u.data("bs.popover", r = new t(this, f)), "string" == typeof i && r[i]())
        })
    }

    var t = function (n, t) {
        this.init("popover", n, t)
    }, i;
    if (!n.fn.tooltip) throw new Error("Popover requires tooltip.js");
    t.VERSION = "3.3.7";
    t.DEFAULTS = n.extend({}, n.fn.tooltip.Constructor.DEFAULTS, {
        placement: "right",
        trigger: "click",
        content: "",
        template: '<div class="popover" role="tooltip"><div class="arrow"><\/div><h3 class="popover-title"><\/h3><div class="popover-content"><\/div><\/div>'
    });
    t.prototype = n.extend({}, n.fn.tooltip.Constructor.prototype);
    t.prototype.constructor = t;
    t.prototype.getDefaults = function () {
        return t.DEFAULTS
    };
    t.prototype.setContent = function () {
        var n = this.tip(), i = this.getTitle(), t = this.getContent();
        n.find(".popover-title")[this.options.html ? "html" : "text"](i);
        n.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof t ? "html" : "append" : "text"](t);
        n.removeClass("fade top bottom left right in");
        n.find(".popover-title").html() || n.find(".popover-title").hide()
    };
    t.prototype.hasContent = function () {
        return this.getTitle() || this.getContent()
    };
    t.prototype.getContent = function () {
        var t = this.$element, n = this.options;
        return t.attr("data-content") || ("function" == typeof n.content ? n.content.call(t[0]) : n.content)
    };
    t.prototype.arrow = function () {
        return this.$arrow = this.$arrow || this.tip().find(".arrow")
    };
    i = n.fn.popover;
    n.fn.popover = r;
    n.fn.popover.Constructor = t;
    n.fn.popover.noConflict = function () {
        return n.fn.popover = i, this
    }
}(jQuery);
+function (n) {
    "use strict";

    function r(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.tab");
            r || u.data("bs.tab", r = new t(this));
            "string" == typeof i && r[i]()
        })
    }

    var t = function (t) {
        this.element = n(t)
    }, u, i;
    t.VERSION = "3.3.7";
    t.TRANSITION_DURATION = 150;
    t.prototype.show = function () {
        var t = this.element, f = t.closest("ul:not(.dropdown-menu)"), i = t.data("target"), u;
        if (i || (i = t.attr("href"), i = i && i.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")) {
            var r = f.find(".active:last a"), e = n.Event("hide.bs.tab", {relatedTarget: t[0]}),
                o = n.Event("show.bs.tab", {relatedTarget: r[0]});
            (r.trigger(e), t.trigger(o), o.isDefaultPrevented() || e.isDefaultPrevented()) || (u = n(i), this.activate(t.closest("li"), f), this.activate(u, u.parent(), function () {
                r.trigger({type: "hidden.bs.tab", relatedTarget: t[0]});
                t.trigger({type: "shown.bs.tab", relatedTarget: r[0]})
            }))
        }
    };
    t.prototype.activate = function (i, r, u) {
        function e() {
            f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1);
            i.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0);
            o ? (i[0].offsetWidth, i.addClass("in")) : i.removeClass("fade");
            i.parent(".dropdown-menu").length && i.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0);
            u && u()
        }

        var f = r.find("> .active"),
            o = u && n.support.transition && (f.length && f.hasClass("fade") || !!r.find("> .fade").length);
        f.length && o ? f.one("bsTransitionEnd", e).emulateTransitionEnd(t.TRANSITION_DURATION) : e();
        f.removeClass("in")
    };
    u = n.fn.tab;
    n.fn.tab = r;
    n.fn.tab.Constructor = t;
    n.fn.tab.noConflict = function () {
        return n.fn.tab = u, this
    };
    i = function (t) {
        t.preventDefault();
        r.call(n(this), "show")
    };
    n(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', i).on("click.bs.tab.data-api", '[data-toggle="pill"]', i)
}(jQuery);
+function (n) {
    "use strict";

    function i(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.affix"), f = "object" == typeof i && i;
            r || u.data("bs.affix", r = new t(this, f));
            "string" == typeof i && r[i]()
        })
    }

    var t = function (i, r) {
        this.options = n.extend({}, t.DEFAULTS, r);
        this.$target = n(this.options.target).on("scroll.bs.affix.data-api", n.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", n.proxy(this.checkPositionWithEventLoop, this));
        this.$element = n(i);
        this.affixed = null;
        this.unpin = null;
        this.pinnedOffset = null;
        this.checkPosition()
    }, r;
    t.VERSION = "3.3.7";
    t.RESET = "affix affix-top affix-bottom";
    t.DEFAULTS = {offset: 0, target: window};
    t.prototype.getState = function (n, t, i, r) {
        var u = this.$target.scrollTop(), f = this.$element.offset(), e = this.$target.height();
        if (null != i && "top" == this.affixed) return i > u ? "top" : !1;
        if ("bottom" == this.affixed) return null != i ? u + this.unpin <= f.top ? !1 : "bottom" : n - r >= u + e ? !1 : "bottom";
        var o = null == this.affixed, s = o ? u : f.top, h = o ? e : t;
        return null != i && i >= u ? "top" : null != r && s + h >= n - r ? "bottom" : !1
    };
    t.prototype.getPinnedOffset = function () {
        if (this.pinnedOffset) return this.pinnedOffset;
        this.$element.removeClass(t.RESET).addClass("affix");
        var n = this.$target.scrollTop(), i = this.$element.offset();
        return this.pinnedOffset = i.top - n
    };
    t.prototype.checkPositionWithEventLoop = function () {
        setTimeout(n.proxy(this.checkPosition, this), 1)
    };
    t.prototype.checkPosition = function () {
        var i, e, o;
        if (this.$element.is(":visible")) {
            var s = this.$element.height(), r = this.options.offset, f = r.top, u = r.bottom,
                h = Math.max(n(document).height(), n(document.body).height());
            if ("object" != typeof r && (u = f = r), "function" == typeof f && (f = r.top(this.$element)), "function" == typeof u && (u = r.bottom(this.$element)), i = this.getState(h, s, f, u), this.affixed != i) {
                if (null != this.unpin && this.$element.css("top", ""), e = "affix" + (i ? "-" + i : ""), o = n.Event(e + ".bs.affix"), this.$element.trigger(o), o.isDefaultPrevented()) return;
                this.affixed = i;
                this.unpin = "bottom" == i ? this.getPinnedOffset() : null;
                this.$element.removeClass(t.RESET).addClass(e).trigger(e.replace("affix", "affixed") + ".bs.affix")
            }
            "bottom" == i && this.$element.offset({top: h - s - u})
        }
    };
    r = n.fn.affix;
    n.fn.affix = i;
    n.fn.affix.Constructor = t;
    n.fn.affix.noConflict = function () {
        return n.fn.affix = r, this
    };
    n(window).on("load", function () {
        n('[data-spy="affix"]').each(function () {
            var r = n(this), t = r.data();
            t.offset = t.offset || {};
            null != t.offsetBottom && (t.offset.bottom = t.offsetBottom);
            null != t.offsetTop && (t.offset.top = t.offsetTop);
            i.call(r, t)
        })
    })
}(jQuery);
+function (n) {
    "use strict";

    function r(t) {
        var i, r = t.attr("data-target") || (i = t.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "");
        return n(r)
    }

    function i(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.collapse"),
                f = n.extend({}, t.DEFAULTS, u.data(), "object" == typeof i && i);
            !r && f.toggle && /show|hide/.test(i) && (f.toggle = !1);
            r || u.data("bs.collapse", r = new t(this, f));
            "string" == typeof i && r[i]()
        })
    }

    var t = function (i, r) {
        this.$element = n(i);
        this.options = n.extend({}, t.DEFAULTS, r);
        this.$trigger = n('[data-toggle="collapse"][href="#' + i.id + '"],[data-toggle="collapse"][data-target="#' + i.id + '"]');
        this.transitioning = null;
        this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger);
        this.options.toggle && this.toggle()
    }, u;
    t.VERSION = "3.3.7";
    t.TRANSITION_DURATION = 350;
    t.DEFAULTS = {toggle: !0};
    t.prototype.dimension = function () {
        var n = this.$element.hasClass("width");
        return n ? "width" : "height"
    };
    t.prototype.show = function () {
        var f, r, e, u, o, s;
        if (!this.transitioning && !this.$element.hasClass("in") && (r = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"), !(r && r.length && (f = r.data("bs.collapse"), f && f.transitioning)) && (e = n.Event("show.bs.collapse"), this.$element.trigger(e), !e.isDefaultPrevented()))) {
            if (r && r.length && (i.call(r, "hide"), f || r.data("bs.collapse", null)), u = this.dimension(), this.$element.removeClass("collapse").addClass("collapsing")[u](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1, o = function () {
                this.$element.removeClass("collapsing").addClass("collapse in")[u]("");
                this.transitioning = 0;
                this.$element.trigger("shown.bs.collapse")
            }, !n.support.transition) return o.call(this);
            s = n.camelCase(["scroll", u].join("-"));
            this.$element.one("bsTransitionEnd", n.proxy(o, this)).emulateTransitionEnd(t.TRANSITION_DURATION)[u](this.$element[0][s])
        }
    };
    t.prototype.hide = function () {
        var r, i, u;
        if (!this.transitioning && this.$element.hasClass("in") && (r = n.Event("hide.bs.collapse"), this.$element.trigger(r), !r.isDefaultPrevented())) return i = this.dimension(), this.$element[i](this.$element[i]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1, u = function () {
            this.transitioning = 0;
            this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
        }, n.support.transition ? void this.$element[i](0).one("bsTransitionEnd", n.proxy(u, this)).emulateTransitionEnd(t.TRANSITION_DURATION) : u.call(this)
    };
    t.prototype.toggle = function () {
        this[this.$element.hasClass("in") ? "hide" : "show"]()
    };
    t.prototype.getParent = function () {
        return n(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(n.proxy(function (t, i) {
            var u = n(i);
            this.addAriaAndCollapsedClass(r(u), u)
        }, this)).end()
    };
    t.prototype.addAriaAndCollapsedClass = function (n, t) {
        var i = n.hasClass("in");
        n.attr("aria-expanded", i);
        t.toggleClass("collapsed", !i).attr("aria-expanded", i)
    };
    u = n.fn.collapse;
    n.fn.collapse = i;
    n.fn.collapse.Constructor = t;
    n.fn.collapse.noConflict = function () {
        return n.fn.collapse = u, this
    };
    n(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (t) {
        var u = n(this);
        u.attr("data-target") || t.preventDefault();
        var f = r(u), e = f.data("bs.collapse"), o = e ? "toggle" : u.data();
        i.call(f, o)
    })
}(jQuery);
+function (n) {
    "use strict";

    function t(i, r) {
        this.$body = n(document.body);
        this.$scrollElement = n(n(i).is(document.body) ? window : i);
        this.options = n.extend({}, t.DEFAULTS, r);
        this.selector = (this.options.target || "") + " .nav li > a";
        this.offsets = [];
        this.targets = [];
        this.activeTarget = null;
        this.scrollHeight = 0;
        this.$scrollElement.on("scroll.bs.scrollspy", n.proxy(this.process, this));
        this.refresh();
        this.process()
    }

    function i(i) {
        return this.each(function () {
            var u = n(this), r = u.data("bs.scrollspy"), f = "object" == typeof i && i;
            r || u.data("bs.scrollspy", r = new t(this, f));
            "string" == typeof i && r[i]()
        })
    }

    t.VERSION = "3.3.7";
    t.DEFAULTS = {offset: 10};
    t.prototype.getScrollHeight = function () {
        return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
    };
    t.prototype.refresh = function () {
        var t = this, i = "offset", r = 0;
        this.offsets = [];
        this.targets = [];
        this.scrollHeight = this.getScrollHeight();
        n.isWindow(this.$scrollElement[0]) || (i = "position", r = this.$scrollElement.scrollTop());
        this.$body.find(this.selector).map(function () {
            var f = n(this), u = f.data("target") || f.attr("href"), t = /^#./.test(u) && n(u);
            return t && t.length && t.is(":visible") && [[t[i]().top + r, u]] || null
        }).sort(function (n, t) {
            return n[0] - t[0]
        }).each(function () {
            t.offsets.push(this[0]);
            t.targets.push(this[1])
        })
    };
    t.prototype.process = function () {
        var n, i = this.$scrollElement.scrollTop() + this.options.offset, f = this.getScrollHeight(),
            e = this.options.offset + f - this.$scrollElement.height(), t = this.offsets, r = this.targets,
            u = this.activeTarget;
        if (this.scrollHeight != f && this.refresh(), i >= e) return u != (n = r[r.length - 1]) && this.activate(n);
        if (u && i < t[0]) return this.activeTarget = null, this.clear();
        for (n = t.length; n--;) u != r[n] && i >= t[n] && (void 0 === t[n + 1] || i < t[n + 1]) && this.activate(r[n])
    };
    t.prototype.activate = function (t) {
        this.activeTarget = t;
        this.clear();
        var r = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]',
            i = n(r).parents("li").addClass("active");
        i.parent(".dropdown-menu").length && (i = i.closest("li.dropdown").addClass("active"));
        i.trigger("activate.bs.scrollspy")
    };
    t.prototype.clear = function () {
        n(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")
    };
    var r = n.fn.scrollspy;
    n.fn.scrollspy = i;
    n.fn.scrollspy.Constructor = t;
    n.fn.scrollspy.noConflict = function () {
        return n.fn.scrollspy = r, this
    };
    n(window).on("load.bs.scrollspy.data-api", function () {
        n('[data-spy="scroll"]').each(function () {
            var t = n(this);
            i.call(t, t.data())
        })
    })
}(jQuery);
+function (n) {
    "use strict";

    function t() {
        var i = document.createElement("bootstrap"), t = {
            WebkitTransition: "webkitTransitionEnd",
            MozTransition: "transitionend",
            OTransition: "oTransitionEnd otransitionend",
            transition: "transitionend"
        }, n;
        for (n in t) if (void 0 !== i.style[n]) return {end: t[n]};
        return !1
    }

    n.fn.emulateTransitionEnd = function (t) {
        var i = !1, u = this, r;
        n(this).one("bsTransitionEnd", function () {
            i = !0
        });
        return r = function () {
            i || n(u).trigger(n.support.transition.end)
        }, setTimeout(r, t), this
    };
    n(function () {
        n.support.transition = t();
        n.support.transition && (n.event.special.bsTransitionEnd = {
            bindType: n.support.transition.end,
            delegateType: n.support.transition.end,
            handle: function (t) {
                if (n(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
            }
        })
    })
}(jQuery);
!function (n) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], n) : "undefined" != typeof exports ? module.exports = n(require("jquery")) : n(jQuery)
}(function (n) {
    "use strict";
    var t = window.Slick || {};
    t = function () {
        function t(t, r) {
            var f, u = this;
            u.defaults = {
                accessibility: !0,
                adaptiveHeight: !1,
                appendArrows: n(t),
                appendDots: n(t),
                arrows: !0,
                asNavFor: null,
                prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous<\/button>',
                nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next<\/button>',
                autoplay: !1,
                autoplaySpeed: 3e3,
                centerMode: !1,
                centerPadding: "50px",
                cssEase: "ease",
                customPaging: function (t, i) {
                    return n('<button type="button" data-role="none" role="button" tabindex="0" />').text(i + 1)
                },
                dots: !1,
                dotsClass: "slick-dots",
                draggable: !0,
                easing: "linear",
                edgeFriction: .35,
                fade: !1,
                focusOnSelect: !1,
                infinite: !0,
                initialSlide: 0,
                lazyLoad: "ondemand",
                mobileFirst: !1,
                pauseOnHover: !0,
                pauseOnFocus: !0,
                pauseOnDotsHover: !1,
                respondTo: "window",
                responsive: null,
                rows: 1,
                rtl: !1,
                slide: "",
                slidesPerRow: 1,
                slidesToShow: 1,
                slidesToScroll: 1,
                speed: 500,
                swipe: !0,
                swipeToSlide: !1,
                touchMove: !0,
                touchThreshold: 5,
                useCSS: !0,
                useTransform: !0,
                variableWidth: !1,
                vertical: !1,
                verticalSwiping: !1,
                waitForAnimate: !0,
                zIndex: 1e3
            };
            u.initials = {
                animating: !1,
                dragging: !1,
                autoPlayTimer: null,
                currentDirection: 0,
                currentLeft: null,
                currentSlide: 0,
                direction: 1,
                $dots: null,
                listWidth: null,
                listHeight: null,
                loadIndex: 0,
                $nextArrow: null,
                $prevArrow: null,
                slideCount: null,
                slideWidth: null,
                $slideTrack: null,
                $slides: null,
                sliding: !1,
                slideOffset: 0,
                swipeLeft: null,
                $list: null,
                touchObject: {},
                transformsEnabled: !1,
                unslicked: !1
            };
            n.extend(u, u.initials);
            u.activeBreakpoint = null;
            u.animType = null;
            u.animProp = null;
            u.breakpoints = [];
            u.breakpointSettings = [];
            u.cssTransitions = !1;
            u.focussed = !1;
            u.interrupted = !1;
            u.hidden = "hidden";
            u.paused = !0;
            u.positionProp = null;
            u.respondTo = null;
            u.rowCount = 1;
            u.shouldClick = !0;
            u.$slider = n(t);
            u.$slidesCache = null;
            u.transformType = null;
            u.transitionType = null;
            u.visibilityChange = "visibilitychange";
            u.windowWidth = 0;
            u.windowTimer = null;
            f = n(t).data("slick") || {};
            u.options = n.extend({}, u.defaults, r, f);
            u.currentSlide = u.options.initialSlide;
            u.originalSettings = u.options;
            "undefined" != typeof document.mozHidden ? (u.hidden = "mozHidden", u.visibilityChange = "mozvisibilitychange") : "undefined" != typeof document.webkitHidden && (u.hidden = "webkitHidden", u.visibilityChange = "webkitvisibilitychange");
            u.autoPlay = n.proxy(u.autoPlay, u);
            u.autoPlayClear = n.proxy(u.autoPlayClear, u);
            u.autoPlayIterator = n.proxy(u.autoPlayIterator, u);
            u.changeSlide = n.proxy(u.changeSlide, u);
            u.clickHandler = n.proxy(u.clickHandler, u);
            u.selectHandler = n.proxy(u.selectHandler, u);
            u.setPosition = n.proxy(u.setPosition, u);
            u.swipeHandler = n.proxy(u.swipeHandler, u);
            u.dragHandler = n.proxy(u.dragHandler, u);
            u.keyHandler = n.proxy(u.keyHandler, u);
            u.instanceUid = i++;
            u.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
            u.registerBreakpoints();
            u.init(!0)
        }

        var i = 0;
        return t
    }();
    t.prototype.activateADA = function () {
        var n = this;
        n.$slideTrack.find(".slick-active").attr({"aria-hidden": "false"}).find("a, input, button, select").attr({tabindex: "0"})
    };
    t.prototype.addSlide = t.prototype.slickAdd = function (t, i, r) {
        var u = this;
        if ("boolean" == typeof i) r = i, i = null; else if (0 > i || i >= u.slideCount) return !1;
        u.unload();
        "number" == typeof i ? 0 === i && 0 === u.$slides.length ? n(t).appendTo(u.$slideTrack) : r ? n(t).insertBefore(u.$slides.eq(i)) : n(t).insertAfter(u.$slides.eq(i)) : r === !0 ? n(t).prependTo(u.$slideTrack) : n(t).appendTo(u.$slideTrack);
        u.$slides = u.$slideTrack.children(this.options.slide);
        u.$slideTrack.children(this.options.slide).detach();
        u.$slideTrack.append(u.$slides);
        u.$slides.each(function (t, i) {
            n(i).attr("data-slick-index", t)
        });
        u.$slidesCache = u.$slides;
        u.reinit()
    };
    t.prototype.animateHeight = function () {
        var n = this, t;
        1 === n.options.slidesToShow && n.options.adaptiveHeight === !0 && n.options.vertical === !1 && (t = n.$slides.eq(n.currentSlide).outerHeight(!0), n.$list.animate({height: t}, n.options.speed))
    };
    t.prototype.animateSlide = function (t, i) {
        var u = {}, r = this;
        r.animateHeight();
        r.options.rtl === !0 && r.options.vertical === !1 && (t = -t);
        r.transformsEnabled === !1 ? r.options.vertical === !1 ? r.$slideTrack.animate({left: t}, r.options.speed, r.options.easing, i) : r.$slideTrack.animate({top: t}, r.options.speed, r.options.easing, i) : r.cssTransitions === !1 ? (r.options.rtl === !0 && (r.currentLeft = -r.currentLeft), n({animStart: r.currentLeft}).animate({animStart: t}, {
            duration: r.options.speed,
            easing: r.options.easing,
            step: function (n) {
                n = Math.ceil(n);
                r.options.vertical === !1 ? (u[r.animType] = "translate(" + n + "px, 0px)", r.$slideTrack.css(u)) : (u[r.animType] = "translate(0px," + n + "px)", r.$slideTrack.css(u))
            },
            complete: function () {
                i && i.call()
            }
        })) : (r.applyTransition(), t = Math.ceil(t), u[r.animType] = r.options.vertical === !1 ? "translate3d(" + t + "px, 0px, 0px)" : "translate3d(0px," + t + "px, 0px)", r.$slideTrack.css(u), i && setTimeout(function () {
            r.disableTransition();
            i.call()
        }, r.options.speed))
    };
    t.prototype.getNavTarget = function () {
        var i = this, t = i.options.asNavFor;
        return t && null !== t && (t = n(t).not(i.$slider)), t
    };
    t.prototype.asNavFor = function (t) {
        var r = this, i = r.getNavTarget();
        null !== i && "object" == typeof i && i.each(function () {
            var i = n(this).slick("getSlick");
            i.unslicked || i.slideHandler(t, !0)
        })
    };
    t.prototype.applyTransition = function (n) {
        var t = this, i = {};
        i[t.transitionType] = t.options.fade === !1 ? t.transformType + " " + t.options.speed + "ms " + t.options.cssEase : "opacity " + t.options.speed + "ms " + t.options.cssEase;
        t.options.fade === !1 ? t.$slideTrack.css(i) : t.$slides.eq(n).css(i)
    };
    t.prototype.autoPlay = function () {
        var n = this;
        n.autoPlayClear();
        n.slideCount > n.options.slidesToShow && (n.autoPlayTimer = setInterval(n.autoPlayIterator, n.options.autoplaySpeed))
    };
    t.prototype.autoPlayClear = function () {
        var n = this;
        n.autoPlayTimer && clearInterval(n.autoPlayTimer)
    };
    t.prototype.autoPlayIterator = function () {
        var n = this, t = n.currentSlide + n.options.slidesToScroll;
        n.paused || n.interrupted || n.focussed || (n.options.infinite === !1 && (1 === n.direction && n.currentSlide + 1 === n.slideCount - 1 ? n.direction = 0 : 0 === n.direction && (t = n.currentSlide - n.options.slidesToScroll, n.currentSlide - 1 == 0 && (n.direction = 1))), n.slideHandler(t))
    };
    t.prototype.buildArrows = function () {
        var t = this;
        t.options.arrows === !0 && (t.$prevArrow = n(t.options.prevArrow).addClass("slick-arrow"), t.$nextArrow = n(t.options.nextArrow).addClass("slick-arrow"), t.slideCount > t.options.slidesToShow ? (t.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), t.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.prependTo(t.options.appendArrows), t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.appendTo(t.options.appendArrows), t.options.infinite !== !0 && t.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : t.$prevArrow.add(t.$nextArrow).addClass("slick-hidden").attr({
            "aria-disabled": "true",
            tabindex: "-1"
        }))
    };
    t.prototype.buildDots = function () {
        var i, r, t = this;
        if (t.options.dots === !0 && t.slideCount > t.options.slidesToShow) {
            for (t.$slider.addClass("slick-dotted"), r = n("<ul />").addClass(t.options.dotsClass), i = 0; i <= t.getDotCount(); i += 1) r.append(n("<li />").append(t.options.customPaging.call(this, t, i)));
            t.$dots = r.appendTo(t.options.appendDots);
            t.$dots.find("li").first().addClass("slick-active").attr("aria-hidden", "false")
        }
    };
    t.prototype.buildOut = function () {
        var t = this;
        t.$slides = t.$slider.children(t.options.slide + ":not(.slick-cloned)").addClass("slick-slide");
        t.slideCount = t.$slides.length;
        t.$slides.each(function (t, i) {
            n(i).attr("data-slick-index", t).data("originalStyling", n(i).attr("style") || "")
        });
        t.$slider.addClass("slick-slider");
        t.$slideTrack = 0 === t.slideCount ? n('<div class="slick-track"/>').appendTo(t.$slider) : t.$slides.wrapAll('<div class="slick-track"/>').parent();
        t.$list = t.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent();
        t.$slideTrack.css("opacity", 0);
        (t.options.centerMode === !0 || t.options.swipeToSlide === !0) && (t.options.slidesToScroll = 1);
        n("img[data-lazy]", t.$slider).not("[src]").addClass("slick-loading");
        t.setupInfinite();
        t.buildArrows();
        t.buildDots();
        t.updateDots();
        t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0);
        t.options.draggable === !0 && t.$list.addClass("draggable")
    };
    t.prototype.buildRows = function () {
        var t, i, r, f, c, u, e, n = this, o, s, h;
        if (f = document.createDocumentFragment(), u = n.$slider.children(), n.options.rows > 1) {
            for (e = n.options.slidesPerRow * n.options.rows, c = Math.ceil(u.length / e), t = 0; c > t; t++) {
                for (o = document.createElement("div"), i = 0; i < n.options.rows; i++) {
                    for (s = document.createElement("div"), r = 0; r < n.options.slidesPerRow; r++) h = t * e + (i * n.options.slidesPerRow + r), u.get(h) && s.appendChild(u.get(h));
                    o.appendChild(s)
                }
                f.appendChild(o)
            }
            n.$slider.empty().append(f);
            n.$slider.children().children().children().css({
                width: 100 / n.options.slidesPerRow + "%",
                display: "inline-block"
            })
        }
    };
    t.prototype.checkResponsive = function (t, i) {
        var f, u, e, r = this, o = !1, s = r.$slider.width(), h = window.innerWidth || n(window).width();
        if ("window" === r.respondTo ? e = h : "slider" === r.respondTo ? e = s : "min" === r.respondTo && (e = Math.min(h, s)), r.options.responsive && r.options.responsive.length && null !== r.options.responsive) {
            u = null;
            for (f in r.breakpoints) r.breakpoints.hasOwnProperty(f) && (r.originalSettings.mobileFirst === !1 ? e < r.breakpoints[f] && (u = r.breakpoints[f]) : e > r.breakpoints[f] && (u = r.breakpoints[f]));
            null !== u ? null !== r.activeBreakpoint ? (u !== r.activeBreakpoint || i) && (r.activeBreakpoint = u, "unslick" === r.breakpointSettings[u] ? r.unslick(u) : (r.options = n.extend({}, r.originalSettings, r.breakpointSettings[u]), t === !0 && (r.currentSlide = r.options.initialSlide), r.refresh(t)), o = u) : (r.activeBreakpoint = u, "unslick" === r.breakpointSettings[u] ? r.unslick(u) : (r.options = n.extend({}, r.originalSettings, r.breakpointSettings[u]), t === !0 && (r.currentSlide = r.options.initialSlide), r.refresh(t)), o = u) : null !== r.activeBreakpoint && (r.activeBreakpoint = null, r.options = r.originalSettings, t === !0 && (r.currentSlide = r.options.initialSlide), r.refresh(t), o = u);
            t || o === !1 || r.$slider.trigger("breakpoint", [r, o])
        }
    };
    t.prototype.changeSlide = function (t, i) {
        var f, e, o, r = this, u = n(t.currentTarget), s;
        switch (u.is("a") && t.preventDefault(), u.is("li") || (u = u.closest("li")), o = r.slideCount % r.options.slidesToScroll != 0, f = o ? 0 : (r.slideCount - r.currentSlide) % r.options.slidesToScroll, t.data.message) {
            case"previous":
                e = 0 === f ? r.options.slidesToScroll : r.options.slidesToShow - f;
                r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide - e, !1, i);
                break;
            case"next":
                e = 0 === f ? r.options.slidesToScroll : f;
                r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide + e, !1, i);
                break;
            case"index":
                s = 0 === t.data.index ? 0 : t.data.index || u.index() * r.options.slidesToScroll;
                r.slideHandler(r.checkNavigable(s), !1, i);
                u.children().trigger("focus");
                break;
            default:
                return
        }
    };
    t.prototype.checkNavigable = function (n) {
        var t, i, u = this, r;
        if (t = u.getNavigableIndexes(), i = 0, n > t[t.length - 1]) n = t[t.length - 1]; else for (r in t) {
            if (n < t[r]) {
                n = i;
                break
            }
            i = t[r]
        }
        return n
    };
    t.prototype.cleanUpEvents = function () {
        var t = this;
        t.options.dots && null !== t.$dots && n("li", t.$dots).off("click.slick", t.changeSlide).off("mouseenter.slick", n.proxy(t.interrupt, t, !0)).off("mouseleave.slick", n.proxy(t.interrupt, t, !1));
        t.$slider.off("focus.slick blur.slick");
        t.options.arrows === !0 && t.slideCount > t.options.slidesToShow && (t.$prevArrow && t.$prevArrow.off("click.slick", t.changeSlide), t.$nextArrow && t.$nextArrow.off("click.slick", t.changeSlide));
        t.$list.off("touchstart.slick mousedown.slick", t.swipeHandler);
        t.$list.off("touchmove.slick mousemove.slick", t.swipeHandler);
        t.$list.off("touchend.slick mouseup.slick", t.swipeHandler);
        t.$list.off("touchcancel.slick mouseleave.slick", t.swipeHandler);
        t.$list.off("click.slick", t.clickHandler);
        n(document).off(t.visibilityChange, t.visibility);
        t.cleanUpSlideEvents();
        t.options.accessibility === !0 && t.$list.off("keydown.slick", t.keyHandler);
        t.options.focusOnSelect === !0 && n(t.$slideTrack).children().off("click.slick", t.selectHandler);
        n(window).off("orientationchange.slick.slick-" + t.instanceUid, t.orientationChange);
        n(window).off("resize.slick.slick-" + t.instanceUid, t.resize);
        n("[draggable!=true]", t.$slideTrack).off("dragstart", t.preventDefault);
        n(window).off("load.slick.slick-" + t.instanceUid, t.setPosition);
        n(document).off("ready.slick.slick-" + t.instanceUid, t.setPosition)
    };
    t.prototype.cleanUpSlideEvents = function () {
        var t = this;
        t.$list.off("mouseenter.slick", n.proxy(t.interrupt, t, !0));
        t.$list.off("mouseleave.slick", n.proxy(t.interrupt, t, !1))
    };
    t.prototype.cleanUpRows = function () {
        var n, t = this;
        t.options.rows > 1 && (n = t.$slides.children().children(), n.removeAttr("style"), t.$slider.empty().append(n))
    };
    t.prototype.clickHandler = function (n) {
        var t = this;
        t.shouldClick === !1 && (n.stopImmediatePropagation(), n.stopPropagation(), n.preventDefault())
    };
    t.prototype.destroy = function (t) {
        var i = this;
        i.autoPlayClear();
        i.touchObject = {};
        i.cleanUpEvents();
        n(".slick-cloned", i.$slider).detach();
        i.$dots && i.$dots.remove();
        i.$prevArrow && i.$prevArrow.length && (i.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), i.htmlExpr.test(i.options.prevArrow) && i.$prevArrow.remove());
        i.$nextArrow && i.$nextArrow.length && (i.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), i.htmlExpr.test(i.options.nextArrow) && i.$nextArrow.remove());
        i.$slides && (i.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function () {
            n(this).attr("style", n(this).data("originalStyling"))
        }), i.$slideTrack.children(this.options.slide).detach(), i.$slideTrack.detach(), i.$list.detach(), i.$slider.append(i.$slides));
        i.cleanUpRows();
        i.$slider.removeClass("slick-slider");
        i.$slider.removeClass("slick-initialized");
        i.$slider.removeClass("slick-dotted");
        i.unslicked = !0;
        t || i.$slider.trigger("destroy", [i])
    };
    t.prototype.disableTransition = function (n) {
        var t = this, i = {};
        i[t.transitionType] = "";
        t.options.fade === !1 ? t.$slideTrack.css(i) : t.$slides.eq(n).css(i)
    };
    t.prototype.fadeSlide = function (n, t) {
        var i = this;
        i.cssTransitions === !1 ? (i.$slides.eq(n).css({zIndex: i.options.zIndex}), i.$slides.eq(n).animate({opacity: 1}, i.options.speed, i.options.easing, t)) : (i.applyTransition(n), i.$slides.eq(n).css({
            opacity: 1,
            zIndex: i.options.zIndex
        }), t && setTimeout(function () {
            i.disableTransition(n);
            t.call()
        }, i.options.speed))
    };
    t.prototype.fadeSlideOut = function (n) {
        var t = this;
        t.cssTransitions === !1 ? t.$slides.eq(n).animate({
            opacity: 0,
            zIndex: t.options.zIndex - 2
        }, t.options.speed, t.options.easing) : (t.applyTransition(n), t.$slides.eq(n).css({
            opacity: 0,
            zIndex: t.options.zIndex - 2
        }))
    };
    t.prototype.filterSlides = t.prototype.slickFilter = function (n) {
        var t = this;
        null !== n && (t.$slidesCache = t.$slides, t.unload(), t.$slideTrack.children(this.options.slide).detach(), t.$slidesCache.filter(n).appendTo(t.$slideTrack), t.reinit())
    };
    t.prototype.focusHandler = function () {
        var t = this;
        t.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*:not(.slick-arrow)", function (i) {
            i.stopImmediatePropagation();
            var r = n(this);
            setTimeout(function () {
                t.options.pauseOnFocus && (t.focussed = r.is(":focus"), t.autoPlay())
            }, 0)
        })
    };
    t.prototype.getCurrent = t.prototype.slickCurrentSlide = function () {
        var n = this;
        return n.currentSlide
    };
    t.prototype.getDotCount = function () {
        var n = this, i = 0, r = 0, t = 0;
        if (n.options.infinite === !0) for (; i < n.slideCount;) ++t, i = r + n.options.slidesToScroll, r += n.options.slidesToScroll <= n.options.slidesToShow ? n.options.slidesToScroll : n.options.slidesToShow; else if (n.options.centerMode === !0) t = n.slideCount; else if (n.options.asNavFor) for (; i < n.slideCount;) ++t, i = r + n.options.slidesToScroll, r += n.options.slidesToScroll <= n.options.slidesToShow ? n.options.slidesToScroll : n.options.slidesToShow; else t = 1 + Math.ceil((n.slideCount - n.options.slidesToShow) / n.options.slidesToScroll);
        return t - 1
    };
    t.prototype.getLeft = function (n) {
        var f, r, i, t = this, u = 0;
        return t.slideOffset = 0, r = t.$slides.first().outerHeight(!0), t.options.infinite === !0 ? (t.slideCount > t.options.slidesToShow && (t.slideOffset = t.slideWidth * t.options.slidesToShow * -1, u = r * t.options.slidesToShow * -1), t.slideCount % t.options.slidesToScroll != 0 && n + t.options.slidesToScroll > t.slideCount && t.slideCount > t.options.slidesToShow && (n > t.slideCount ? (t.slideOffset = (t.options.slidesToShow - (n - t.slideCount)) * t.slideWidth * -1, u = (t.options.slidesToShow - (n - t.slideCount)) * r * -1) : (t.slideOffset = t.slideCount % t.options.slidesToScroll * t.slideWidth * -1, u = t.slideCount % t.options.slidesToScroll * r * -1))) : n + t.options.slidesToShow > t.slideCount && (t.slideOffset = (n + t.options.slidesToShow - t.slideCount) * t.slideWidth, u = (n + t.options.slidesToShow - t.slideCount) * r), t.slideCount <= t.options.slidesToShow && (t.slideOffset = 0, u = 0), t.options.centerMode === !0 && t.options.infinite === !0 ? t.slideOffset += t.slideWidth * Math.floor(t.options.slidesToShow / 2) - t.slideWidth : t.options.centerMode === !0 && (t.slideOffset = 0, t.slideOffset += t.slideWidth * Math.floor(t.options.slidesToShow / 2)), f = t.options.vertical === !1 ? n * t.slideWidth * -1 + t.slideOffset : n * r * -1 + u, t.options.variableWidth === !0 && (i = t.slideCount <= t.options.slidesToShow || t.options.infinite === !1 ? t.$slideTrack.children(".slick-slide").eq(n) : t.$slideTrack.children(".slick-slide").eq(n + t.options.slidesToShow), f = t.options.rtl === !0 ? i[0] ? -1 * (t.$slideTrack.width() - i[0].offsetLeft - i.width()) : 0 : i[0] ? -1 * i[0].offsetLeft : 0, t.options.centerMode === !0 && (i = t.slideCount <= t.options.slidesToShow || t.options.infinite === !1 ? t.$slideTrack.children(".slick-slide").eq(n) : t.$slideTrack.children(".slick-slide").eq(n + t.options.slidesToShow + 1), f = t.options.rtl === !0 ? i[0] ? -1 * (t.$slideTrack.width() - i[0].offsetLeft - i.width()) : 0 : i[0] ? -1 * i[0].offsetLeft : 0, f += (t.$list.width() - i.outerWidth()) / 2)), f
    };
    t.prototype.getOption = t.prototype.slickGetOption = function (n) {
        var t = this;
        return t.options[n]
    };
    t.prototype.getNavigableIndexes = function () {
        var i, n = this, t = 0, r = 0, u = [];
        for (n.options.infinite === !1 ? i = n.slideCount : (t = -1 * n.options.slidesToScroll, r = -1 * n.options.slidesToScroll, i = 2 * n.slideCount); i > t;) u.push(t), t = r + n.options.slidesToScroll, r += n.options.slidesToScroll <= n.options.slidesToShow ? n.options.slidesToScroll : n.options.slidesToShow;
        return u
    };
    t.prototype.getSlick = function () {
        return this
    };
    t.prototype.getSlideCount = function () {
        var u, i, r, t = this;
        return r = t.options.centerMode === !0 ? t.slideWidth * Math.floor(t.options.slidesToShow / 2) : 0, t.options.swipeToSlide === !0 ? (t.$slideTrack.find(".slick-slide").each(function (u, f) {
            if (f.offsetLeft - r + n(f).outerWidth() / 2 > -1 * t.swipeLeft) return (i = f, !1)
        }), u = Math.abs(n(i).attr("data-slick-index") - t.currentSlide) || 1) : t.options.slidesToScroll
    };
    t.prototype.goTo = t.prototype.slickGoTo = function (n, t) {
        var i = this;
        i.changeSlide({data: {message: "index", index: parseInt(n)}}, t)
    };
    t.prototype.init = function (t) {
        var i = this;
        n(i.$slider).hasClass("slick-initialized") || (n(i.$slider).addClass("slick-initialized"), i.buildRows(), i.buildOut(), i.setProps(), i.startLoad(), i.loadSlider(), i.initializeEvents(), i.updateArrows(), i.updateDots(), i.checkResponsive(!0), i.focusHandler());
        t && i.$slider.trigger("init", [i]);
        i.options.accessibility === !0 && i.initADA();
        i.options.autoplay && (i.paused = !1, i.autoPlay())
    };
    t.prototype.initADA = function () {
        var t = this;
        t.$slides.add(t.$slideTrack.find(".slick-cloned")).attr({
            "aria-hidden": "true",
            tabindex: "-1"
        }).find("a, input, button, select").attr({tabindex: "-1"});
        t.$slideTrack.attr("role", "listbox");
        t.$slides.not(t.$slideTrack.find(".slick-cloned")).each(function (i) {
            n(this).attr({role: "option", "aria-describedby": "slick-slide" + t.instanceUid + i})
        });
        null !== t.$dots && t.$dots.attr("role", "tablist").find("li").each(function (i) {
            n(this).attr({
                role: "presentation",
                "aria-selected": "false",
                "aria-controls": "navigation" + t.instanceUid + i,
                id: "slick-slide" + t.instanceUid + i
            })
        }).first().attr("aria-selected", "true").end().find("button").attr("role", "button").end().closest("div").attr("role", "toolbar");
        t.activateADA()
    };
    t.prototype.initArrowEvents = function () {
        var n = this;
        n.options.arrows === !0 && n.slideCount > n.options.slidesToShow && (n.$prevArrow.off("click.slick").on("click.slick", {message: "previous"}, n.changeSlide), n.$nextArrow.off("click.slick").on("click.slick", {message: "next"}, n.changeSlide))
    };
    t.prototype.initDotEvents = function () {
        var t = this;
        t.options.dots === !0 && t.slideCount > t.options.slidesToShow && n("li", t.$dots).on("click.slick", {message: "index"}, t.changeSlide);
        t.options.dots === !0 && t.options.pauseOnDotsHover === !0 && n("li", t.$dots).on("mouseenter.slick", n.proxy(t.interrupt, t, !0)).on("mouseleave.slick", n.proxy(t.interrupt, t, !1))
    };
    t.prototype.initSlideEvents = function () {
        var t = this;
        t.options.pauseOnHover && (t.$list.on("mouseenter.slick", n.proxy(t.interrupt, t, !0)), t.$list.on("mouseleave.slick", n.proxy(t.interrupt, t, !1)))
    };
    t.prototype.initializeEvents = function () {
        var t = this;
        t.initArrowEvents();
        t.initDotEvents();
        t.initSlideEvents();
        t.$list.on("touchstart.slick mousedown.slick", {action: "start"}, t.swipeHandler);
        t.$list.on("touchmove.slick mousemove.slick", {action: "move"}, t.swipeHandler);
        t.$list.on("touchend.slick mouseup.slick", {action: "end"}, t.swipeHandler);
        t.$list.on("touchcancel.slick mouseleave.slick", {action: "end"}, t.swipeHandler);
        t.$list.on("click.slick", t.clickHandler);
        n(document).on(t.visibilityChange, n.proxy(t.visibility, t));
        t.options.accessibility === !0 && t.$list.on("keydown.slick", t.keyHandler);
        t.options.focusOnSelect === !0 && n(t.$slideTrack).children().on("click.slick", t.selectHandler);
        n(window).on("orientationchange.slick.slick-" + t.instanceUid, n.proxy(t.orientationChange, t));
        n(window).on("resize.slick.slick-" + t.instanceUid, n.proxy(t.resize, t));
        n("[draggable!=true]", t.$slideTrack).on("dragstart", t.preventDefault);
        n(window).on("load.slick.slick-" + t.instanceUid, t.setPosition);
        n(document).on("ready.slick.slick-" + t.instanceUid, t.setPosition)
    };
    t.prototype.initUI = function () {
        var n = this;
        n.options.arrows === !0 && n.slideCount > n.options.slidesToShow && (n.$prevArrow.show(), n.$nextArrow.show());
        n.options.dots === !0 && n.slideCount > n.options.slidesToShow && n.$dots.show()
    };
    t.prototype.keyHandler = function (n) {
        var t = this;
        n.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === n.keyCode && t.options.accessibility === !0 ? t.changeSlide({data: {message: t.options.rtl === !0 ? "next" : "previous"}}) : 39 === n.keyCode && t.options.accessibility === !0 && t.changeSlide({data: {message: t.options.rtl === !0 ? "previous" : "next"}}))
    };
    t.prototype.lazyLoad = function () {
        function f(i) {
            n("img[data-lazy]", i).each(function () {
                var i = n(this), r = n(this).attr("data-lazy"), u = document.createElement("img");
                u.onload = function () {
                    i.animate({opacity: 0}, 100, function () {
                        i.attr("src", r).animate({opacity: 1}, 200, function () {
                            i.removeAttr("data-lazy").removeClass("slick-loading")
                        });
                        t.$slider.trigger("lazyLoaded", [t, i, r])
                    })
                };
                u.onerror = function () {
                    i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error");
                    t.$slider.trigger("lazyLoadError", [t, i, r])
                };
                u.src = r
            })
        }

        var e, r, i, u, t = this;
        t.options.centerMode === !0 ? t.options.infinite === !0 ? (i = t.currentSlide + (t.options.slidesToShow / 2 + 1), u = i + t.options.slidesToShow + 2) : (i = Math.max(0, t.currentSlide - (t.options.slidesToShow / 2 + 1)), u = 2 + (t.options.slidesToShow / 2 + 1) + t.currentSlide) : (i = t.options.infinite ? t.options.slidesToShow + t.currentSlide : t.currentSlide, u = Math.ceil(i + t.options.slidesToShow), t.options.fade === !0 && (i > 0 && i--, u <= t.slideCount && u++));
        e = t.$slider.find(".slick-slide").slice(i, u);
        f(e);
        t.slideCount <= t.options.slidesToShow ? (r = t.$slider.find(".slick-slide"), f(r)) : t.currentSlide >= t.slideCount - t.options.slidesToShow ? (r = t.$slider.find(".slick-cloned").slice(0, t.options.slidesToShow), f(r)) : 0 === t.currentSlide && (r = t.$slider.find(".slick-cloned").slice(-1 * t.options.slidesToShow), f(r))
    };
    t.prototype.loadSlider = function () {
        var n = this;
        n.setPosition();
        n.$slideTrack.css({opacity: 1});
        n.$slider.removeClass("slick-loading");
        n.initUI();
        "progressive" === n.options.lazyLoad && n.progressiveLazyLoad()
    };
    t.prototype.next = t.prototype.slickNext = function () {
        var n = this;
        n.changeSlide({data: {message: "next"}})
    };
    t.prototype.orientationChange = function () {
        var n = this;
        n.checkResponsive();
        n.setPosition()
    };
    t.prototype.pause = t.prototype.slickPause = function () {
        var n = this;
        n.autoPlayClear();
        n.paused = !0
    };
    t.prototype.play = t.prototype.slickPlay = function () {
        var n = this;
        n.autoPlay();
        n.options.autoplay = !0;
        n.paused = !1;
        n.focussed = !1;
        n.interrupted = !1
    };
    t.prototype.postSlide = function (n) {
        var t = this;
        t.unslicked || (t.$slider.trigger("afterChange", [t, n]), t.animating = !1, t.setPosition(), t.swipeLeft = null, t.options.autoplay && t.autoPlay(), t.options.accessibility === !0 && t.initADA())
    };
    t.prototype.prev = t.prototype.slickPrev = function () {
        var n = this;
        n.changeSlide({data: {message: "previous"}})
    };
    t.prototype.preventDefault = function (n) {
        n.preventDefault()
    };
    t.prototype.progressiveLazyLoad = function (t) {
        t = t || 1;
        var r, u, f, i = this, e = n("img[data-lazy]", i.$slider);
        e.length ? (r = e.first(), u = r.attr("data-lazy"), f = document.createElement("img"), f.onload = function () {
            r.attr("src", u).removeAttr("data-lazy").removeClass("slick-loading");
            i.options.adaptiveHeight === !0 && i.setPosition();
            i.$slider.trigger("lazyLoaded", [i, r, u]);
            i.progressiveLazyLoad()
        }, f.onerror = function () {
            3 > t ? setTimeout(function () {
                i.progressiveLazyLoad(t + 1)
            }, 500) : (r.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), i.$slider.trigger("lazyLoadError", [i, r, u]), i.progressiveLazyLoad())
        }, f.src = u) : i.$slider.trigger("allImagesLoaded", [i])
    };
    t.prototype.refresh = function (t) {
        var r, u, i = this;
        u = i.slideCount - i.options.slidesToShow;
        !i.options.infinite && i.currentSlide > u && (i.currentSlide = u);
        i.slideCount <= i.options.slidesToShow && (i.currentSlide = 0);
        r = i.currentSlide;
        i.destroy(!0);
        n.extend(i, i.initials, {currentSlide: r});
        i.init();
        t || i.changeSlide({data: {message: "index", index: r}}, !1)
    };
    t.prototype.registerBreakpoints = function () {
        var u, f, i, t = this, r = t.options.responsive || null;
        if ("array" === n.type(r) && r.length) {
            t.respondTo = t.options.respondTo || "window";
            for (u in r) if (i = t.breakpoints.length - 1, f = r[u].breakpoint, r.hasOwnProperty(u)) {
                for (; i >= 0;) t.breakpoints[i] && t.breakpoints[i] === f && t.breakpoints.splice(i, 1), i--;
                t.breakpoints.push(f);
                t.breakpointSettings[f] = r[u].settings
            }
            t.breakpoints.sort(function (n, i) {
                return t.options.mobileFirst ? n - i : i - n
            })
        }
    };
    t.prototype.reinit = function () {
        var t = this;
        t.$slides = t.$slideTrack.children(t.options.slide).addClass("slick-slide");
        t.slideCount = t.$slides.length;
        t.currentSlide >= t.slideCount && 0 !== t.currentSlide && (t.currentSlide = t.currentSlide - t.options.slidesToScroll);
        t.slideCount <= t.options.slidesToShow && (t.currentSlide = 0);
        t.registerBreakpoints();
        t.setProps();
        t.setupInfinite();
        t.buildArrows();
        t.updateArrows();
        t.initArrowEvents();
        t.buildDots();
        t.updateDots();
        t.initDotEvents();
        t.cleanUpSlideEvents();
        t.initSlideEvents();
        t.checkResponsive(!1, !0);
        t.options.focusOnSelect === !0 && n(t.$slideTrack).children().on("click.slick", t.selectHandler);
        t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0);
        t.setPosition();
        t.focusHandler();
        t.paused = !t.options.autoplay;
        t.autoPlay();
        t.$slider.trigger("reInit", [t])
    };
    t.prototype.resize = function () {
        var t = this;
        n(window).width() !== t.windowWidth && (clearTimeout(t.windowDelay), t.windowDelay = window.setTimeout(function () {
            t.windowWidth = n(window).width();
            t.checkResponsive();
            t.unslicked || t.setPosition()
        }, 50))
    };
    t.prototype.removeSlide = t.prototype.slickRemove = function (n, t, i) {
        var r = this;
        return "boolean" == typeof n ? (t = n, n = t === !0 ? 0 : r.slideCount - 1) : n = t === !0 ? --n : n, r.slideCount < 1 || 0 > n || n > r.slideCount - 1 ? !1 : (r.unload(), i === !0 ? r.$slideTrack.children().remove() : r.$slideTrack.children(this.options.slide).eq(n).remove(), r.$slides = r.$slideTrack.children(this.options.slide), r.$slideTrack.children(this.options.slide).detach(), r.$slideTrack.append(r.$slides), r.$slidesCache = r.$slides, void r.reinit())
    };
    t.prototype.setCSS = function (n) {
        var r, u, t = this, i = {};
        t.options.rtl === !0 && (n = -n);
        r = "left" == t.positionProp ? Math.ceil(n) + "px" : "0px";
        u = "top" == t.positionProp ? Math.ceil(n) + "px" : "0px";
        i[t.positionProp] = n;
        t.transformsEnabled === !1 ? t.$slideTrack.css(i) : (i = {}, t.cssTransitions === !1 ? (i[t.animType] = "translate(" + r + ", " + u + ")", t.$slideTrack.css(i)) : (i[t.animType] = "translate3d(" + r + ", " + u + ", 0px)", t.$slideTrack.css(i)))
    };
    t.prototype.setDimensions = function () {
        var n = this, t;
        n.options.vertical === !1 ? n.options.centerMode === !0 && n.$list.css({padding: "0px " + n.options.centerPadding}) : (n.$list.height(n.$slides.first().outerHeight(!0) * n.options.slidesToShow), n.options.centerMode === !0 && n.$list.css({padding: n.options.centerPadding + " 0px"}));
        n.listWidth = n.$list.width();
        n.listHeight = n.$list.height();
        n.options.vertical === !1 && n.options.variableWidth === !1 ? (n.slideWidth = Math.ceil(n.listWidth / n.options.slidesToShow), n.$slideTrack.width(Math.ceil(n.slideWidth * n.$slideTrack.children(".slick-slide").length))) : n.options.variableWidth === !0 ? n.$slideTrack.width(5e3 * n.slideCount) : (n.slideWidth = Math.ceil(n.listWidth), n.$slideTrack.height(Math.ceil(n.$slides.first().outerHeight(!0) * n.$slideTrack.children(".slick-slide").length)));
        t = n.$slides.first().outerWidth(!0) - n.$slides.first().width();
        n.options.variableWidth === !1 && n.$slideTrack.children(".slick-slide").width(n.slideWidth - t)
    };
    t.prototype.setFade = function () {
        var i, t = this;
        t.$slides.each(function (r, u) {
            i = t.slideWidth * r * -1;
            t.options.rtl === !0 ? n(u).css({
                position: "relative",
                right: i,
                top: 0,
                zIndex: t.options.zIndex - 2,
                opacity: 0
            }) : n(u).css({position: "relative", left: i, top: 0, zIndex: t.options.zIndex - 2, opacity: 0})
        });
        t.$slides.eq(t.currentSlide).css({zIndex: t.options.zIndex - 1, opacity: 1})
    };
    t.prototype.setHeight = function () {
        var n = this, t;
        1 === n.options.slidesToShow && n.options.adaptiveHeight === !0 && n.options.vertical === !1 && (t = n.$slides.eq(n.currentSlide).outerHeight(!0), n.$list.css("height", t))
    };
    t.prototype.setOption = t.prototype.slickSetOption = function () {
        var u, f, e, i, r, t = this, o = !1;
        if ("object" === n.type(arguments[0]) ? (e = arguments[0], o = arguments[1], r = "multiple") : "string" === n.type(arguments[0]) && (e = arguments[0], i = arguments[1], o = arguments[2], "responsive" === arguments[0] && "array" === n.type(arguments[1]) ? r = "responsive" : "undefined" != typeof arguments[1] && (r = "single")), "single" === r) t.options[e] = i; else if ("multiple" === r) n.each(e, function (n, i) {
            t.options[n] = i
        }); else if ("responsive" === r) for (f in i) if ("array" !== n.type(t.options.responsive)) t.options.responsive = [i[f]]; else {
            for (u = t.options.responsive.length - 1; u >= 0;) t.options.responsive[u].breakpoint === i[f].breakpoint && t.options.responsive.splice(u, 1), u--;
            t.options.responsive.push(i[f])
        }
        o && (t.unload(), t.reinit())
    };
    t.prototype.setPosition = function () {
        var n = this;
        n.setDimensions();
        n.setHeight();
        n.options.fade === !1 ? n.setCSS(n.getLeft(n.currentSlide)) : n.setFade();
        n.$slider.trigger("setPosition", [n])
    };
    t.prototype.setProps = function () {
        var n = this, t = document.body.style;
        n.positionProp = n.options.vertical === !0 ? "top" : "left";
        "top" === n.positionProp ? n.$slider.addClass("slick-vertical") : n.$slider.removeClass("slick-vertical");
        (void 0 !== t.WebkitTransition || void 0 !== t.MozTransition || void 0 !== t.msTransition) && n.options.useCSS === !0 && (n.cssTransitions = !0);
        n.options.fade && ("number" == typeof n.options.zIndex ? n.options.zIndex < 3 && (n.options.zIndex = 3) : n.options.zIndex = n.defaults.zIndex);
        void 0 !== t.OTransform && (n.animType = "OTransform", n.transformType = "-o-transform", n.transitionType = "OTransition", void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (n.animType = !1));
        void 0 !== t.MozTransform && (n.animType = "MozTransform", n.transformType = "-moz-transform", n.transitionType = "MozTransition", void 0 === t.perspectiveProperty && void 0 === t.MozPerspective && (n.animType = !1));
        void 0 !== t.webkitTransform && (n.animType = "webkitTransform", n.transformType = "-webkit-transform", n.transitionType = "webkitTransition", void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (n.animType = !1));
        void 0 !== t.msTransform && (n.animType = "msTransform", n.transformType = "-ms-transform", n.transitionType = "msTransition", void 0 === t.msTransform && (n.animType = !1));
        void 0 !== t.transform && n.animType !== !1 && (n.animType = "transform", n.transformType = "transform", n.transitionType = "transition");
        n.transformsEnabled = n.options.useTransform && null !== n.animType && n.animType !== !1
    };
    t.prototype.setSlideClasses = function (n) {
        var u, i, r, f, t = this;
        i = t.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true");
        t.$slides.eq(n).addClass("slick-current");
        t.options.centerMode === !0 ? (u = Math.floor(t.options.slidesToShow / 2), t.options.infinite === !0 && (n >= u && n <= t.slideCount - 1 - u ? t.$slides.slice(n - u, n + u + 1).addClass("slick-active").attr("aria-hidden", "false") : (r = t.options.slidesToShow + n, i.slice(r - u + 1, r + u + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === n ? i.eq(i.length - 1 - t.options.slidesToShow).addClass("slick-center") : n === t.slideCount - 1 && i.eq(t.options.slidesToShow).addClass("slick-center")), t.$slides.eq(n).addClass("slick-center")) : n >= 0 && n <= t.slideCount - t.options.slidesToShow ? t.$slides.slice(n, n + t.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : i.length <= t.options.slidesToShow ? i.addClass("slick-active").attr("aria-hidden", "false") : (f = t.slideCount % t.options.slidesToShow, r = t.options.infinite === !0 ? t.options.slidesToShow + n : n, t.options.slidesToShow == t.options.slidesToScroll && t.slideCount - n < t.options.slidesToShow ? i.slice(r - (t.options.slidesToShow - f), r + f).addClass("slick-active").attr("aria-hidden", "false") : i.slice(r, r + t.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false"));
        "ondemand" === t.options.lazyLoad && t.lazyLoad()
    };
    t.prototype.setupInfinite = function () {
        var i, r, u, t = this;
        if (t.options.fade === !0 && (t.options.centerMode = !1), t.options.infinite === !0 && t.options.fade === !1 && (r = null, t.slideCount > t.options.slidesToShow)) {
            for (u = t.options.centerMode === !0 ? t.options.slidesToShow + 1 : t.options.slidesToShow, i = t.slideCount; i > t.slideCount - u; i -= 1) r = i - 1, n(t.$slides[r]).clone(!0).attr("id", "").attr("data-slick-index", r - t.slideCount).prependTo(t.$slideTrack).addClass("slick-cloned");
            for (i = 0; u > i; i += 1) r = i, n(t.$slides[r]).clone(!0).attr("id", "").attr("data-slick-index", r + t.slideCount).appendTo(t.$slideTrack).addClass("slick-cloned");
            t.$slideTrack.find(".slick-cloned").find("[id]").each(function () {
                n(this).attr("id", "")
            })
        }
    };
    t.prototype.interrupt = function (n) {
        var t = this;
        n || t.autoPlay();
        t.interrupted = n
    };
    t.prototype.selectHandler = function (t) {
        var i = this, u = n(t.target).is(".slick-slide") ? n(t.target) : n(t.target).parents(".slick-slide"),
            r = parseInt(u.attr("data-slick-index"));
        return r || (r = 0), i.slideCount <= i.options.slidesToShow ? (i.setSlideClasses(r), void i.asNavFor(r)) : void i.slideHandler(r)
    };
    t.prototype.slideHandler = function (n, t, i) {
        var u, f, s, o, e, h = null, r = this;
        return t = t || !1, r.animating === !0 && r.options.waitForAnimate === !0 || r.options.fade === !0 && r.currentSlide === n || r.slideCount <= r.options.slidesToShow ? void 0 : (t === !1 && r.asNavFor(n), u = n, h = r.getLeft(u), o = r.getLeft(r.currentSlide), r.currentLeft = null === r.swipeLeft ? o : r.swipeLeft, r.options.infinite === !1 && r.options.centerMode === !1 && (0 > n || n > r.getDotCount() * r.options.slidesToScroll) ? void(r.options.fade === !1 && (u = r.currentSlide, i !== !0 ? r.animateSlide(o, function () {
            r.postSlide(u)
        }) : r.postSlide(u))) : r.options.infinite === !1 && r.options.centerMode === !0 && (0 > n || n > r.slideCount - r.options.slidesToScroll) ? void(r.options.fade === !1 && (u = r.currentSlide, i !== !0 ? r.animateSlide(o, function () {
            r.postSlide(u)
        }) : r.postSlide(u))) : (r.options.autoplay && clearInterval(r.autoPlayTimer), f = 0 > u ? r.slideCount % r.options.slidesToScroll != 0 ? r.slideCount - r.slideCount % r.options.slidesToScroll : r.slideCount + u : u >= r.slideCount ? r.slideCount % r.options.slidesToScroll != 0 ? 0 : u - r.slideCount : u, r.animating = !0, r.$slider.trigger("beforeChange", [r, r.currentSlide, f]), s = r.currentSlide, r.currentSlide = f, r.setSlideClasses(r.currentSlide), r.options.asNavFor && (e = r.getNavTarget(), e = e.slick("getSlick"), e.slideCount <= e.options.slidesToShow && e.setSlideClasses(r.currentSlide)), r.updateDots(), r.updateArrows(), r.options.fade === !0 ? (i !== !0 ? (r.fadeSlideOut(s), r.fadeSlide(f, function () {
            r.postSlide(f)
        })) : r.postSlide(f), void r.animateHeight()) : void(i !== !0 ? r.animateSlide(h, function () {
            r.postSlide(f)
        }) : r.postSlide(f))))
    };
    t.prototype.startLoad = function () {
        var n = this;
        n.options.arrows === !0 && n.slideCount > n.options.slidesToShow && (n.$prevArrow.hide(), n.$nextArrow.hide());
        n.options.dots === !0 && n.slideCount > n.options.slidesToShow && n.$dots.hide();
        n.$slider.addClass("slick-loading")
    };
    t.prototype.swipeDirection = function () {
        var i, r, u, n, t = this;
        return i = t.touchObject.startX - t.touchObject.curX, r = t.touchObject.startY - t.touchObject.curY, u = Math.atan2(r, i), n = Math.round(180 * u / Math.PI), 0 > n && (n = 360 - Math.abs(n)), 45 >= n && n >= 0 ? t.options.rtl === !1 ? "left" : "right" : 360 >= n && n >= 315 ? t.options.rtl === !1 ? "left" : "right" : n >= 135 && 225 >= n ? t.options.rtl === !1 ? "right" : "left" : t.options.verticalSwiping === !0 ? n >= 35 && 135 >= n ? "down" : "up" : "vertical"
    };
    t.prototype.swipeEnd = function () {
        var t, i, n = this;
        if (n.dragging = !1, n.interrupted = !1, n.shouldClick = n.touchObject.swipeLength > 10 ? !1 : !0, void 0 === n.touchObject.curX) return !1;
        if (n.touchObject.edgeHit === !0 && n.$slider.trigger("edge", [n, n.swipeDirection()]), n.touchObject.swipeLength >= n.touchObject.minSwipe) {
            switch (i = n.swipeDirection()) {
                case"left":
                case"down":
                    t = n.options.swipeToSlide ? n.checkNavigable(n.currentSlide + n.getSlideCount()) : n.currentSlide + n.getSlideCount();
                    n.currentDirection = 0;
                    break;
                case"right":
                case"up":
                    t = n.options.swipeToSlide ? n.checkNavigable(n.currentSlide - n.getSlideCount()) : n.currentSlide - n.getSlideCount();
                    n.currentDirection = 1
            }
            "vertical" != i && (n.slideHandler(t), n.touchObject = {}, n.$slider.trigger("swipe", [n, i]))
        } else n.touchObject.startX !== n.touchObject.curX && (n.slideHandler(n.currentSlide), n.touchObject = {})
    };
    t.prototype.swipeHandler = function (n) {
        var t = this;
        if (!(t.options.swipe === !1 || "ontouchend" in document && t.options.swipe === !1 || t.options.draggable === !1 && -1 !== n.type.indexOf("mouse"))) switch (t.touchObject.fingerCount = n.originalEvent && void 0 !== n.originalEvent.touches ? n.originalEvent.touches.length : 1, t.touchObject.minSwipe = t.listWidth / t.options.touchThreshold, t.options.verticalSwiping === !0 && (t.touchObject.minSwipe = t.listHeight / t.options.touchThreshold), n.data.action) {
            case"start":
                t.swipeStart(n);
                break;
            case"move":
                t.swipeMove(n);
                break;
            case"end":
                t.swipeEnd(n)
        }
    };
    t.prototype.swipeMove = function (n) {
        var f, e, r, u, i, t = this;
        return i = void 0 !== n.originalEvent ? n.originalEvent.touches : null, !t.dragging || i && 1 !== i.length ? !1 : (f = t.getLeft(t.currentSlide), t.touchObject.curX = void 0 !== i ? i[0].pageX : n.clientX, t.touchObject.curY = void 0 !== i ? i[0].pageY : n.clientY, t.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(t.touchObject.curX - t.touchObject.startX, 2))), t.options.verticalSwiping === !0 && (t.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(t.touchObject.curY - t.touchObject.startY, 2)))), e = t.swipeDirection(), "vertical" !== e ? (void 0 !== n.originalEvent && t.touchObject.swipeLength > 4 && n.preventDefault(), u = (t.options.rtl === !1 ? 1 : -1) * (t.touchObject.curX > t.touchObject.startX ? 1 : -1), t.options.verticalSwiping === !0 && (u = t.touchObject.curY > t.touchObject.startY ? 1 : -1), r = t.touchObject.swipeLength, t.touchObject.edgeHit = !1, t.options.infinite === !1 && (0 === t.currentSlide && "right" === e || t.currentSlide >= t.getDotCount() && "left" === e) && (r = t.touchObject.swipeLength * t.options.edgeFriction, t.touchObject.edgeHit = !0), t.swipeLeft = t.options.vertical === !1 ? f + r * u : f + r * (t.$list.height() / t.listWidth) * u, t.options.verticalSwiping === !0 && (t.swipeLeft = f + r * u), t.options.fade === !0 || t.options.touchMove === !1 ? !1 : t.animating === !0 ? (t.swipeLeft = null, !1) : void t.setCSS(t.swipeLeft)) : void 0)
    };
    t.prototype.swipeStart = function (n) {
        var i, t = this;
        return t.interrupted = !0, 1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow ? (t.touchObject = {}, !1) : (void 0 !== n.originalEvent && void 0 !== n.originalEvent.touches && (i = n.originalEvent.touches[0]), t.touchObject.startX = t.touchObject.curX = void 0 !== i ? i.pageX : n.clientX, t.touchObject.startY = t.touchObject.curY = void 0 !== i ? i.pageY : n.clientY, void(t.dragging = !0))
    };
    t.prototype.unfilterSlides = t.prototype.slickUnfilter = function () {
        var n = this;
        null !== n.$slidesCache && (n.unload(), n.$slideTrack.children(this.options.slide).detach(), n.$slidesCache.appendTo(n.$slideTrack), n.reinit())
    };
    t.prototype.unload = function () {
        var t = this;
        n(".slick-cloned", t.$slider).remove();
        t.$dots && t.$dots.remove();
        t.$prevArrow && t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove();
        t.$nextArrow && t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove();
        t.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
    };
    t.prototype.unslick = function (n) {
        var t = this;
        t.$slider.trigger("unslick", [t, n]);
        t.destroy()
    };
    t.prototype.updateArrows = function () {
        var t, n = this;
        t = Math.floor(n.options.slidesToShow / 2);
        n.options.arrows === !0 && n.slideCount > n.options.slidesToShow && !n.options.infinite && (n.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), n.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === n.currentSlide ? (n.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), n.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : n.currentSlide >= n.slideCount - n.options.slidesToShow && n.options.centerMode === !1 ? (n.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), n.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : n.currentSlide >= n.slideCount - 1 && n.options.centerMode === !0 && (n.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), n.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
    };
    t.prototype.updateDots = function () {
        var n = this;
        null !== n.$dots && (n.$dots.find("li").removeClass("slick-active").attr("aria-hidden", "true"), n.$dots.find("li").eq(Math.floor(n.currentSlide / n.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden", "false"))
    };
    t.prototype.visibility = function () {
        var n = this;
        n.options.autoplay && (n.interrupted = document[n.hidden] ? !0 : !1)
    };
    n.fn.slick = function () {
        for (var u, i = this, r = arguments[0], f = Array.prototype.slice.call(arguments, 1), e = i.length, n = 0; e > n; n++) if ("object" == typeof r || "undefined" == typeof r ? i[n].slick = new t(i[n], r) : u = i[n].slick[r].apply(i[n].slick, f), "undefined" != typeof u) return u;
        return i
    }
});
!function (n) {
    function o() {
        n[i].glbl || (f = {
            $wndw: n(window),
            $docu: n(document),
            $html: n("html"),
            $body: n("body")
        }, t = {}, u = {}, r = {}, n.each([t, u, r], function (n, t) {
            t.add = function (n) {
                n = n.split(" ");
                for (var i = 0, r = n.length; r > i; i++) t[n[i]] = t.mm(n[i])
            }
        }), t.mm = function (n) {
            return "mm-" + n
        }, t.add("wrapper menu panels panel nopanel current highest opened subopened navbar hasnavbar title btn prev next listview nolistview inset vertical selected divider spacer hidden fullsubopen"), t.umm = function (n) {
            return "mm-" == n.slice(0, 3) && (n = n.slice(3)), n
        }, u.mm = function (n) {
            return "mm-" + n
        }, u.add("parent sub"), r.mm = function (n) {
            return n + ".mm"
        }, r.add("transitionend webkitTransitionEnd click scroll keydown mousedown mouseup touchstart touchmove touchend orientationchange"), n[i]._c = t, n[i]._d = u, n[i]._e = r, n[i].glbl = f)
    }

    var i = "mmenu", e = "5.6.4", t, u, r, f;
    n[i] && n[i].version > e || (n[i] = function (n, t, i) {
        this.$menu = n;
        this._api = ["bind", "init", "update", "setSelected", "getInstance", "openPanel", "closePanel", "closeAllPanels"];
        this.opts = t;
        this.conf = i;
        this.vars = {};
        this.cbck = {};
        "function" == typeof this.___deprecated && this.___deprecated();
        this._initMenu();
        this._initAnchors();
        var r = this.$pnls.children();
        return this._initAddons(), this.init(r), "function" == typeof this.___debug && this.___debug(), this
    }, n[i].version = e, n[i].addons = {}, n[i].uniqueId = 0, n[i].defaults = {
        extensions: [],
        navbar: {add: !0, title: "Menu", titleLink: "panel"},
        onClick: {setSelected: !0},
        slidingSubmenus: !0
    }, n[i].configuration = {
        classNames: {
            divider: "Divider",
            inset: "Inset",
            panel: "Panel",
            selected: "Selected",
            spacer: "Spacer",
            vertical: "Vertical"
        }, clone: !1, openingInterval: 25, panelNodetype: "ul, ol, div", transitionDuration: 400
    }, n[i].prototype = {
        init: function (n) {
            n = n.not("." + t.nopanel);
            n = this._initPanels(n);
            this.trigger("init", n);
            this.trigger("update")
        }, update: function () {
            this.trigger("update")
        }, setSelected: function (n) {
            this.$menu.find("." + t.listview).children().removeClass(t.selected);
            n.addClass(t.selected);
            this.trigger("setSelected", n)
        }, openPanel: function (r) {
            var e = r.parent(), u = this, o, s, f;
            if (e.hasClass(t.vertical)) {
                if (o = e.parents("." + t.subopened), o.length) return void this.openPanel(o.first());
                e.addClass(t.opened);
                this.trigger("openPanel", r);
                this.trigger("openingPanel", r);
                this.trigger("openedPanel", r)
            } else {
                if (r.hasClass(t.current)) return;
                s = this.$pnls.children("." + t.panel);
                f = s.filter("." + t.current);
                s.removeClass(t.highest).removeClass(t.current).not(r).not(f).not("." + t.vertical).addClass(t.hidden);
                n[i].support.csstransitions || f.addClass(t.hidden);
                r.hasClass(t.opened) ? r.nextAll("." + t.opened).addClass(t.highest).removeClass(t.opened).removeClass(t.subopened) : (r.addClass(t.highest), f.addClass(t.subopened));
                r.removeClass(t.hidden).addClass(t.current);
                u.trigger("openPanel", r);
                setTimeout(function () {
                    r.removeClass(t.subopened).addClass(t.opened);
                    u.trigger("openingPanel", r);
                    u.__transitionend(r, function () {
                        u.trigger("openedPanel", r)
                    }, u.conf.transitionDuration)
                }, this.conf.openingInterval)
            }
        }, closePanel: function (n) {
            var i = n.parent();
            i.hasClass(t.vertical) && (i.removeClass(t.opened), this.trigger("closePanel", n), this.trigger("closingPanel", n), this.trigger("closedPanel", n))
        }, closeAllPanels: function () {
            this.$menu.find("." + t.listview).children().removeClass(t.selected).filter("." + t.vertical).removeClass(t.opened);
            var i = this.$pnls.children("." + t.panel), n = i.first();
            this.$pnls.children("." + t.panel).not(n).removeClass(t.subopened).removeClass(t.opened).removeClass(t.current).removeClass(t.highest).addClass(t.hidden);
            this.openPanel(n)
        }, togglePanel: function (n) {
            var i = n.parent();
            i.hasClass(t.vertical) && this[i.hasClass(t.opened) ? "closePanel" : "openPanel"](n)
        }, getInstance: function () {
            return this
        }, bind: function (n, t) {
            this.cbck[n] = this.cbck[n] || [];
            this.cbck[n].push(t)
        }, trigger: function () {
            var u = this, i = Array.prototype.slice.call(arguments), t = i.shift(), n, r;
            if (this.cbck[t]) for (n = 0, r = this.cbck[t].length; r > n; n++) this.cbck[t][n].apply(u, i)
        }, _initMenu: function () {
            this.$menu.attr("id", this.$menu.attr("id") || this.__getUniqueId());
            this.conf.clone && (this.$menu = this.$menu.clone(!0), this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function () {
                n(this).attr("id", t.mm(n(this).attr("id")))
            }));
            this.$menu.contents().each(function () {
                3 == n(this)[0].nodeType && n(this).remove()
            });
            this.$pnls = n('<div class="' + t.panels + '" />').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu);
            this.$menu.parent().addClass(t.wrapper);
            var i = [t.menu];
            this.opts.slidingSubmenus || i.push(t.vertical);
            this.opts.extensions = this.opts.extensions.length ? "mm-" + this.opts.extensions.join(" mm-") : "";
            this.opts.extensions && i.push(this.opts.extensions);
            this.$menu.addClass(i.join(" "))
        }, _initPanels: function (i) {
            var f = this, c = this.__findAddBack(i, "ul, ol"), o, r, s, l, h, e;
            return this.__refactorClass(c, this.conf.classNames.inset, "inset").addClass(t.nolistview + " " + t.nopanel), c.not("." + t.nolistview).addClass(t.listview), o = this.__findAddBack(i, "." + t.listview).children(), this.__refactorClass(o, this.conf.classNames.selected, "selected"), this.__refactorClass(o, this.conf.classNames.divider, "divider"), this.__refactorClass(o, this.conf.classNames.spacer, "spacer"), this.__refactorClass(this.__findAddBack(i, "." + this.conf.classNames.panel), this.conf.classNames.panel, "panel"), r = n(), s = i.add(i.find("." + t.panel)).add(this.__findAddBack(i, "." + t.listview).children().children(this.conf.panelNodetype)).not("." + t.nopanel), this.__refactorClass(s, this.conf.classNames.vertical, "vertical"), this.opts.slidingSubmenus || s.addClass(t.vertical), s.each(function () {
                var i = n(this), u = i, e;
                i.is("ul, ol") ? (i.wrap('<div class="' + t.panel + '" />'), u = i.parent()) : u.addClass(t.panel);
                e = i.attr("id");
                i.removeAttr("id");
                u.attr("id", e || f.__getUniqueId());
                i.hasClass(t.vertical) && (i.removeClass(f.conf.classNames.vertical), u.add(u.parent()).addClass(t.vertical));
                r = r.add(u)
            }), l = n("." + t.panel, this.$menu), r.each(function () {
                var e, c, r = n(this), i = r.parent(), o = i.children("a, span").first(), s, h;
                if (i.is("." + t.panels) || (i.data(u.sub, r), r.data(u.parent, i)), i.children("." + t.next).length || i.parent().is("." + t.listview) && (e = r.attr("id"), c = n('<a class="' + t.next + '" href="#' + e + '" data-target="#' + e + '" />').insertBefore(o), o.is("span") && c.addClass(t.fullsubopen)), !r.children("." + t.navbar).length && !i.hasClass(t.vertical)) if (i.parent().is("." + t.listview) ? i = i.closest("." + t.panel) : (o = i.closest("." + t.panel).find('a[href="#' + r.attr("id") + '"]').first(), i = o.closest("." + t.panel)), s = !1, h = n('<div class="' + t.navbar + '" />'), f.opts.navbar.add && r.addClass(t.hasnavbar), i.length) {
                    switch (e = i.attr("id"), f.opts.navbar.titleLink) {
                        case"anchor":
                            s = o.attr("href");
                            break;
                        case"panel":
                        case"parent":
                            s = "#" + e;
                            break;
                        default:
                            s = !1
                    }
                    h.append('<a class="' + t.btn + " " + t.prev + '" href="#' + e + '" data-target="#' + e + '" />').append(n('<a class="' + t.title + '"' + (s ? ' href="' + s + '"' : "") + " />").text(o.text())).prependTo(r)
                } else f.opts.navbar.title && h.append('<a class="' + t.title + '">' + f.opts.navbar.title + "<\/a>").prependTo(r)
            }), h = this.__findAddBack(i, "." + t.listview).children("." + t.selected).removeClass(t.selected).last().addClass(t.selected), h.add(h.parentsUntil("." + t.menu, "li")).filter("." + t.vertical).addClass(t.opened).end().each(function () {
                n(this).parentsUntil("." + t.menu, "." + t.panel).not("." + t.vertical).first().addClass(t.opened).parentsUntil("." + t.menu, "." + t.panel).not("." + t.vertical).first().addClass(t.opened).addClass(t.subopened)
            }), h.children("." + t.panel).not("." + t.vertical).addClass(t.opened).parentsUntil("." + t.menu, "." + t.panel).not("." + t.vertical).first().addClass(t.opened).addClass(t.subopened), e = l.filter("." + t.opened), e.length || (e = r.first()), e.addClass(t.opened).last().addClass(t.current), r.not("." + t.vertical).not(e.last()).addClass(t.hidden).end().filter(function () {
                return !n(this).parent().hasClass(t.panels)
            }).appendTo(this.$pnls), r
        }, _initAnchors: function () {
            var u = this;
            f.$body.on(r.click + "-oncanvas", "a[href]", function (r) {
                var f = n(this), e = !1, s = u.$menu.find(f).length, l, o, h, c;
                for (l in n[i].addons) if (n[i].addons[l].clickAnchor.call(u, f, s)) {
                    e = !0;
                    break
                }
                if (o = f.attr("href"), !e && s && o.length > 1 && "#" == o.slice(0, 1)) try {
                    h = n(o, u.$menu);
                    h.is("." + t.panel) && (e = !0, u[f.parent().hasClass(t.vertical) ? "togglePanel" : "openPanel"](h))
                } catch (a) {
                }
                (e && r.preventDefault(), e || !s || !f.is("." + t.listview + " > li > a") || f.is('[rel="external"]') || f.is('[target="_blank"]')) || (u.__valueOrFn(u.opts.onClick.setSelected, f) && u.setSelected(n(r.target).parent()), c = u.__valueOrFn(u.opts.onClick.preventDefault, f, "#" == o.slice(0, 1)), c && r.preventDefault(), u.__valueOrFn(u.opts.onClick.close, f, c) && u.close())
            })
        }, _initAddons: function () {
            var t;
            for (t in n[i].addons) n[i].addons[t].add.call(this), n[i].addons[t].add = function () {
            };
            for (t in n[i].addons) n[i].addons[t].setup.call(this)
        }, _getOriginalMenuId: function () {
            var n = this.$menu.attr("id");
            return n && n.length && this.conf.clone && (n = t.umm(n)), n
        }, __api: function () {
            var i = this, t = {};
            return n.each(this._api, function () {
                var n = this;
                t[n] = function () {
                    var r = i[n].apply(i, arguments);
                    return "undefined" == typeof r ? t : r
                }
            }), t
        }, __valueOrFn: function (n, t, i) {
            return "function" == typeof n ? n.call(t[0]) : "undefined" == typeof n && "undefined" != typeof i ? i : n
        }, __refactorClass: function (n, i, r) {
            return n.filter("." + i).removeClass(i).addClass(t[r])
        }, __findAddBack: function (n, t) {
            return n.find(t).add(n.filter(t))
        }, __filterListItems: function (n) {
            return n.not("." + t.divider).not("." + t.hidden)
        }, __transitionend: function (n, t, i) {
            var f = !1, u = function () {
                f || t.call(n[0]);
                f = !0
            };
            n.one(r.transitionend, u);
            n.one(r.webkitTransitionEnd, u);
            setTimeout(u, 1.1 * i)
        }, __getUniqueId: function () {
            return t.mm(n[i].uniqueId++)
        }
    }, n.fn[i] = function (t, r) {
        return o(), t = n.extend(!0, {}, n[i].defaults, t), r = n.extend(!0, {}, n[i].configuration, r), this.each(function () {
            var f = n(this), u;
            f.data(i) || (u = new n[i](f, t, r), u.$menu.data(i, u.__api()))
        })
    }, n[i].support = {
        touch: "ontouchstart" in window || navigator.msMaxTouchPoints || !1,
        csstransitions: function () {
            var i, t;
            if ("undefined" != typeof Modernizr && "undefined" != typeof Modernizr.csstransitions) return Modernizr.csstransitions;
            var u = document.body || document.documentElement, r = u.style, n = "transition";
            if ("string" == typeof r[n]) return !0;
            for (i = ["Moz", "webkit", "Webkit", "Khtml", "O", "ms"], n = n.charAt(0).toUpperCase() + n.substr(1), t = 0; t < i.length; t++) if ("string" == typeof r[i[t] + n]) return !0;
            return !1
        }()
    })
}(jQuery), function (n) {
    var u = "mmenu", r = "offCanvas", i, e, f, t;
    n[u].addons[r] = {
        setup: function () {
            var f, e, o, s, h;
            this.opts[r] && (f = this.opts[r], e = this.conf[r], t = n[u].glbl, this._api = n.merge(this._api, ["open", "close", "setPage"]), ("top" == f.position || "bottom" == f.position) && (f.zposition = "front"), "string" != typeof e.pageSelector && (e.pageSelector = "> " + e.pageNodetype), t.$allMenus = (t.$allMenus || n()).add(this.$menu), this.vars.opened = !1, o = [i.offcanvas], "left" != f.position && o.push(i.mm(f.position)), "back" != f.zposition && o.push(i.mm(f.zposition)), this.$menu.addClass(o.join(" ")).parent().removeClass(i.wrapper), this.setPage(t.$page), this._initBlocker(), this["_initWindow_" + r](), this.$menu[e.menuInjectMethod + "To"](e.menuWrapperSelector), s = window.location.hash, s && (h = this._getOriginalMenuId(), h && h == s.slice(1) && this.open()))
        }, add: function () {
            i = n[u]._c;
            e = n[u]._d;
            f = n[u]._e;
            i.add("offcanvas slideout blocking modal background opening blocker page");
            e.add("style");
            f.add("resize")
        }, clickAnchor: function (n) {
            if (!this.opts[r]) return !1;
            var i = this._getOriginalMenuId();
            return i && n.is('[href="#' + i + '"]') ? (this.open(), !0) : t.$page ? (i = t.$page.first().attr("id"), i && n.is('[href="#' + i + '"]') ? (this.close(), !0) : !1) : void 0
        }
    };
    n[u].defaults[r] = {position: "left", zposition: "back", blockUI: !0, moveBackground: !0};
    n[u].configuration[r] = {
        pageNodetype: "div",
        pageSelector: null,
        noPageSelector: [],
        wrapPageIfNeeded: !0,
        menuWrapperSelector: "body",
        menuInjectMethod: "prepend"
    };
    n[u].prototype.open = function () {
        if (!this.vars.opened) {
            var n = this;
            this._openSetup();
            setTimeout(function () {
                n._openFinish()
            }, this.conf.openingInterval);
            this.trigger("open")
        }
    };
    n[u].prototype._openSetup = function () {
        var s = this, o = this.opts[r], u;
        this.closeAllOthers();
        t.$page.each(function () {
            n(this).data(e.style, n(this).attr("style") || "")
        });
        t.$wndw.trigger(f.resize + "-" + r, [!0]);
        u = [i.opened];
        o.blockUI && u.push(i.blocking);
        "modal" == o.blockUI && u.push(i.modal);
        o.moveBackground && u.push(i.background);
        "left" != o.position && u.push(i.mm(this.opts[r].position));
        "back" != o.zposition && u.push(i.mm(this.opts[r].zposition));
        this.opts.extensions && u.push(this.opts.extensions);
        t.$html.addClass(u.join(" "));
        setTimeout(function () {
            s.vars.opened = !0
        }, this.conf.openingInterval);
        this.$menu.addClass(i.current + " " + i.opened)
    };
    n[u].prototype._openFinish = function () {
        var n = this;
        this.__transitionend(t.$page.first(), function () {
            n.trigger("opened")
        }, this.conf.transitionDuration);
        t.$html.addClass(i.opening);
        this.trigger("opening")
    };
    n[u].prototype.close = function () {
        if (this.vars.opened) {
            var u = this;
            this.__transitionend(t.$page.first(), function () {
                u.$menu.removeClass(i.current).removeClass(i.opened);
                t.$html.removeClass(i.opened).removeClass(i.blocking).removeClass(i.modal).removeClass(i.background).removeClass(i.mm(u.opts[r].position)).removeClass(i.mm(u.opts[r].zposition));
                u.opts.extensions && t.$html.removeClass(u.opts.extensions);
                t.$page.each(function () {
                    n(this).attr("style", n(this).data(e.style))
                });
                u.vars.opened = !1;
                u.trigger("closed")
            }, this.conf.transitionDuration);
            t.$html.removeClass(i.opening);
            this.trigger("close");
            this.trigger("closing")
        }
    };
    n[u].prototype.closeAllOthers = function () {
        t.$allMenus.not(this.$menu).each(function () {
            var t = n(this).data(u);
            t && t.close && t.close()
        })
    };
    n[u].prototype.setPage = function (u) {
        var e = this, f = this.conf[r];
        u && u.length || (u = t.$body.find(f.pageSelector), f.noPageSelector.length && (u = u.not(f.noPageSelector.join(", "))), u.length > 1 && f.wrapPageIfNeeded && (u = u.wrapAll("<" + this.conf[r].pageNodetype + " />").parent()));
        u.each(function () {
            n(this).attr("id", n(this).attr("id") || e.__getUniqueId())
        });
        u.addClass(i.page + " " + i.slideout);
        t.$page = u;
        this.trigger("setPage", u)
    };
    n[u].prototype["_initWindow_" + r] = function () {
        t.$wndw.off(f.keydown + "-" + r).on(f.keydown + "-" + r, function (n) {
            if (t.$html.hasClass(i.opened) && 9 == n.keyCode) return (n.preventDefault(), !1)
        });
        var n = 0;
        t.$wndw.off(f.resize + "-" + r).on(f.resize + "-" + r, function (r, u) {
            if (1 == t.$page.length && (u || t.$html.hasClass(i.opened))) {
                var f = t.$wndw.height();
                (u || f != n) && (n = f, t.$page.css("minHeight", f))
            }
        })
    };
    n[u].prototype._initBlocker = function () {
        var u = this;
        this.opts[r].blockUI && (t.$blck || (t.$blck = n('<div id="' + i.blocker + '" class="' + i.slideout + '" />')), t.$blck.appendTo(t.$body).off(f.touchstart + "-" + r + " " + f.touchmove + "-" + r).on(f.touchstart + "-" + r + " " + f.touchmove + "-" + r, function (n) {
            n.preventDefault();
            n.stopPropagation();
            t.$blck.trigger(f.mousedown + "-" + r)
        }).off(f.mousedown + "-" + r).on(f.mousedown + "-" + r, function (n) {
            n.preventDefault();
            t.$html.hasClass(i.modal) || (u.closeAllOthers(), u.close())
        }))
    }
}(jQuery), function (n) {
    var t = "mmenu", r = "scrollBugFix", i, e, u, f;
    n[t].addons[r] = {
        setup: function () {
            var o = this, e = this.opts[r], h, s;
            this.conf[r];
            (f = n[t].glbl, n[t].support.touch && this.opts.offCanvas && this.opts.offCanvas.blockUI && ("boolean" == typeof e && (e = {fix: e}), "object" != typeof e && (e = {}), e = this.opts[r] = n.extend(!0, {}, n[t].defaults[r], e), e.fix)) && (h = this.$menu.attr("id"), s = !1, this.bind("opening", function () {
                this.$pnls.children("." + i.current).scrollTop(0)
            }), f.$docu.on(u.touchmove, function (n) {
                o.vars.opened && n.preventDefault()
            }), f.$body.on(u.touchstart, "#" + h + "> ." + i.panels + "> ." + i.current, function (n) {
                o.vars.opened && (s || (s = !0, 0 === n.currentTarget.scrollTop ? n.currentTarget.scrollTop = 1 : n.currentTarget.scrollHeight === n.currentTarget.scrollTop + n.currentTarget.offsetHeight && (n.currentTarget.scrollTop -= 1), s = !1))
            }).on(u.touchmove, "#" + h + "> ." + i.panels + "> ." + i.current, function (t) {
                o.vars.opened && n(this)[0].scrollHeight > n(this).innerHeight() && t.stopPropagation()
            }), f.$wndw.on(u.orientationchange, function () {
                o.$pnls.children("." + i.current).scrollTop(0).css({"-webkit-overflow-scrolling": "auto"}).css({"-webkit-overflow-scrolling": "touch"})
            }))
        }, add: function () {
            i = n[t]._c;
            e = n[t]._d;
            u = n[t]._e
        }, clickAnchor: function () {
        }
    };
    n[t].defaults[r] = {fix: !0}
}(jQuery), function (n) {
    var i = "mmenu", r = "autoHeight", t, f, u, e;
    n[i].addons[r] = {
        setup: function () {
            var u, f;
            this.opts.offCanvas && (u = this.opts[r], this.conf[r], (e = n[i].glbl, "boolean" == typeof u && u && (u = {height: "auto"}), "string" == typeof u && (u = {height: u}), "object" != typeof u && (u = {}), u = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], u), "auto" == u.height || "highest" == u.height) && (this.$menu.addClass(t.autoheight), f = function (i) {
                if (this.vars.opened) {
                    var f = parseInt(this.$pnls.css("top"), 10) || 0, e = parseInt(this.$pnls.css("bottom"), 10) || 0,
                        r = 0;
                    this.$menu.addClass(t.measureheight);
                    "auto" == u.height ? (i = i || this.$pnls.children("." + t.current), i.is("." + t.vertical) && (i = i.parents("." + t.panel).not("." + t.vertical).first()), r = i.outerHeight()) : "highest" == u.height && this.$pnls.children().each(function () {
                        var i = n(this);
                        i.is("." + t.vertical) && (i = i.parents("." + t.panel).not("." + t.vertical).first());
                        r = Math.max(r, i.outerHeight())
                    });
                    this.$menu.height(r + f + e).removeClass(t.measureheight)
                }
            }, this.bind("opening", f), "highest" == u.height && this.bind("init", f), "auto" == u.height && (this.bind("update", f), this.bind("openPanel", f), this.bind("closePanel", f))))
        }, add: function () {
            t = n[i]._c;
            f = n[i]._d;
            u = n[i]._e;
            t.add("autoheight measureheight");
            u.add("resize")
        }, clickAnchor: function () {
        }
    };
    n[i].defaults[r] = {height: "default"}
}(jQuery), function (n) {
    var t = "mmenu", i = "backButton", r, f, e, u;
    n[t].addons[i] = {
        setup: function () {
            var e, f, o;
            this.opts.offCanvas && (e = this, f = this.opts[i], this.conf[i], (u = n[t].glbl, "boolean" == typeof f && (f = {close: f}), "object" != typeof f && (f = {}), f = n.extend(!0, {}, n[t].defaults[i], f), f.close) && (o = "#" + e.$menu.attr("id"), this.bind("opened", function () {
                location.hash != o && history.pushState(null, document.title, o)
            }), n(window).on("popstate", function (n) {
                u.$html.hasClass(r.opened) ? (n.stopPropagation(), e.close()) : location.hash == o && (n.stopPropagation(), e.open())
            })))
        }, add: function () {
            return window.history && window.history.pushState ? (r = n[t]._c, f = n[t]._d, void(e = n[t]._e)) : void(n[t].addons[i].setup = function () {
            })
        }, clickAnchor: function () {
        }
    };
    n[t].defaults[i] = {close: !1}
}(jQuery), function (n) {
    var i = "mmenu", r = "columns", t, f, e, u;
    n[i].addons[r] = {
        setup: function () {
            var f = this.opts[r];
            if (this.conf[r], u = n[i].glbl, "boolean" == typeof f && (f = {add: f}), "number" == typeof f && (f = {
                add: !0,
                visible: f
            }), "object" != typeof f && (f = {}), "number" == typeof f.visible && (f.visible = {
                min: f.visible,
                max: f.visible
            }), f = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], f), f.add) {
                f.visible.min = Math.max(1, Math.min(6, f.visible.min));
                f.visible.max = Math.max(f.visible.min, Math.min(6, f.visible.max));
                this.$menu.addClass(t.columns);
                for (var c = this.opts.offCanvas ? this.$menu.add(u.$html) : this.$menu, e = [], s = 0; s <= f.visible.max; s++) e.push(t.columns + "-" + s);
                e = e.join(" ");
                var l = function (n) {
                    h.call(this, this.$pnls.children("." + t.current));
                    f.hideNavbars && n.removeClass(t.hasnavbar)
                }, o = function () {
                    var n = this.$pnls.children("." + t.panel).filter("." + t.opened).length;
                    n = Math.min(f.visible.max, Math.max(f.visible.min, n));
                    c.removeClass(e).addClass(t.columns + "-" + n)
                }, a = function () {
                    this.opts.offCanvas && u.$html.removeClass(e)
                }, h = function (i) {
                    this.$pnls.children("." + t.panel).removeClass(e).filter("." + t.subopened).removeClass(t.hidden).add(i).slice(-f.visible.max).each(function (i) {
                        n(this).addClass(t.columns + "-" + i)
                    })
                };
                this.bind("open", o);
                this.bind("close", a);
                this.bind("init", l);
                this.bind("openPanel", h);
                this.bind("openingPanel", o);
                this.bind("openedPanel", o);
                this.opts.offCanvas || o.call(this)
            }
        }, add: function () {
            t = n[i]._c;
            f = n[i]._d;
            e = n[i]._e;
            t.add("columns")
        }, clickAnchor: function (i, u) {
            var e, s, f, o;
            if (!this.opts[r].add) return !1;
            if (u && (e = i.attr("href"), e.length > 1 && "#" == e.slice(0, 1))) try {
                if (s = n(e, this.$menu), s.is("." + t.panel)) for (f = parseInt(i.closest("." + t.panel).attr("class").split(t.columns + "-")[1].split(" ")[0], 10) + 1; f !== !1;) {
                    if (o = this.$pnls.children("." + t.columns + "-" + f), !o.length) {
                        f = !1;
                        break
                    }
                    f++;
                    o.removeClass(t.subopened).removeClass(t.opened).removeClass(t.current).removeClass(t.highest).addClass(t.hidden)
                }
            } catch (h) {
            }
        }
    };
    n[i].defaults[r] = {add: !1, visible: {min: 1, max: 3}, hideNavbars: !1}
}(jQuery), function (n) {
    var t = "mmenu", i = "counters", r, u, f, e;
    n[t].addons[i] = {
        setup: function () {
            var o = this, f = this.opts[i];
            this.conf[i];
            e = n[t].glbl;
            "boolean" == typeof f && (f = {add: f, update: f});
            "object" != typeof f && (f = {});
            f = this.opts[i] = n.extend(!0, {}, n[t].defaults[i], f);
            this.bind("init", function (t) {
                this.__refactorClass(n("em", t), this.conf.classNames[i].counter, "counter")
            });
            f.add && this.bind("init", function (t) {
                var i;
                switch (f.addTo) {
                    case"panels":
                        i = t;
                        break;
                    default:
                        i = t.filter(f.addTo)
                }
                i.each(function () {
                    var t = n(this).data(u.parent);
                    t && (t.children("em." + r.counter).length || t.prepend(n('<em class="' + r.counter + '" />')))
                })
            });
            f.update && this.bind("update", function () {
                this.$pnls.children("." + r.panel).each(function () {
                    var t = n(this), f = t.data(u.parent), i;
                    f && (i = f.children("em." + r.counter), i.length && (t = t.children("." + r.listview), t.length && i.html(o.__filterListItems(t.children()).length)))
                })
            })
        }, add: function () {
            r = n[t]._c;
            u = n[t]._d;
            f = n[t]._e;
            r.add("counter search noresultsmsg")
        }, clickAnchor: function () {
        }
    };
    n[t].defaults[i] = {add: !1, addTo: "panels", update: !1};
    n[t].configuration.classNames[i] = {counter: "Counter"}
}(jQuery), function (n) {
    var r = "mmenu", i = "dividers", t, f, u, e;
    n[r].addons[i] = {
        setup: function () {
            var s = this, f = this.opts[i], o;
            this.conf[i];
            (e = n[r].glbl, "boolean" == typeof f && (f = {
                add: f,
                fixed: f
            }), "object" != typeof f && (f = {}), f = this.opts[i] = n.extend(!0, {}, n[r].defaults[i], f), this.bind("init", function () {
                this.__refactorClass(n("li", this.$menu), this.conf.classNames[i].collapsed, "collapsed")
            }), f.add && this.bind("init", function (i) {
                var r;
                switch (f.addTo) {
                    case"panels":
                        r = i;
                        break;
                    default:
                        r = i.filter(f.addTo)
                }
                n("." + t.divider, r).remove();
                r.find("." + t.listview).not("." + t.vertical).each(function () {
                    var i = "";
                    s.__filterListItems(n(this).children()).each(function () {
                        var r = n.trim(n(this).children("a, span").text()).slice(0, 1).toLowerCase();
                        r != i && r.length && (i = r, n('<li class="' + t.divider + '">' + r + "<\/li>").insertBefore(this))
                    })
                })
            }), f.collapse && this.bind("init", function (i) {
                n("." + t.divider, i).each(function () {
                    var i = n(this), r = i.nextUntil("." + t.divider, "." + t.collapsed);
                    r.length && (i.children("." + t.subopen).length || (i.wrapInner("<span />"), i.prepend('<a href="#" class="' + t.subopen + " " + t.fullsubopen + '" />')))
                })
            }), f.fixed) && (o = function (i) {
                var f, r, u;
                i = i || this.$pnls.children("." + t.current);
                f = i.find("." + t.divider).not("." + t.hidden);
                f.length ? (this.$menu.addClass(t.hasdividers), r = i.scrollTop() || 0, u = "", i.is(":visible") && i.find("." + t.divider).not("." + t.hidden).each(function () {
                    n(this).position().top + r < r + 1 && (u = n(this).text())
                }), this.$fixeddivider.text(u)) : this.$menu.removeClass(t.hasdividers)
            }, this.$fixeddivider = n('<ul class="' + t.listview + " " + t.fixeddivider + '"><li class="' + t.divider + '"><\/li><\/ul>').prependTo(this.$pnls).children(), this.bind("openPanel", o), this.bind("update", o), this.bind("init", function (t) {
                t.off(u.scroll + "-dividers " + u.touchmove + "-dividers").on(u.scroll + "-dividers " + u.touchmove + "-dividers", function () {
                    o.call(s, n(this))
                })
            }))
        }, add: function () {
            t = n[r]._c;
            f = n[r]._d;
            u = n[r]._e;
            t.add("collapsed uncollapsed fixeddivider hasdividers");
            u.add("scroll")
        }, clickAnchor: function (n, r) {
            var u, f;
            return this.opts[i].collapse && r && (u = n.parent(), u.is("." + t.divider)) ? (f = u.nextUntil("." + t.divider, "." + t.collapsed), u.toggleClass(t.opened), f[u.hasClass(t.opened) ? "addClass" : "removeClass"](t.uncollapsed), !0) : !1
        }
    };
    n[r].defaults[i] = {add: !1, addTo: "panels", fixed: !1, collapse: !1};
    n[r].configuration.classNames[i] = {collapsed: "Collapsed"}
}(jQuery), function (n) {
    function f(n, t, i) {
        return t > n && (n = t), n > i && (n = i), n
    }

    var i = "mmenu", r = "dragOpen", u, e, o, t;
    n[i].addons[r] = {
        setup: function () {
            var a, nt;
            if (this.opts.offCanvas) {
                var v = this, o = this.opts[r], p = this.conf[r];
                if (t = n[i].glbl, "boolean" == typeof o && (o = {open: o}), "object" != typeof o && (o = {}), o = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], o), o.open) {
                    var c, y, w, b, k, e = {}, s = 0, d = !1, h = !1, l = 0, g = 0;
                    switch (this.opts.offCanvas.position) {
                        case"left":
                        case"right":
                            e.events = "panleft panright";
                            e.typeLower = "x";
                            e.typeUpper = "X";
                            h = "width";
                            break;
                        case"top":
                        case"bottom":
                            e.events = "panup pandown";
                            e.typeLower = "y";
                            e.typeUpper = "Y";
                            h = "height"
                    }
                    switch (this.opts.offCanvas.position) {
                        case"right":
                        case"bottom":
                            e.negative = !0;
                            b = function (n) {
                                n >= t.$wndw[h]() - o.maxStartPos && (s = 1)
                            };
                            break;
                        default:
                            e.negative = !1;
                            b = function (n) {
                                n <= o.maxStartPos && (s = 1)
                            }
                    }
                    switch (this.opts.offCanvas.position) {
                        case"left":
                            e.open_dir = "right";
                            e.close_dir = "left";
                            break;
                        case"right":
                            e.open_dir = "left";
                            e.close_dir = "right";
                            break;
                        case"top":
                            e.open_dir = "down";
                            e.close_dir = "up";
                            break;
                        case"bottom":
                            e.open_dir = "up";
                            e.close_dir = "down"
                    }
                    switch (this.opts.offCanvas.zposition) {
                        case"front":
                            k = function () {
                                return this.$menu
                            };
                            break;
                        default:
                            k = function () {
                                return n("." + u.slideout)
                            }
                    }
                    a = this.__valueOrFn(o.pageNode, this.$menu, t.$page);
                    "string" == typeof a && (a = n(a));
                    nt = new Hammer(a[0], o.vendors.hammer);
                    nt.on("panstart", function (n) {
                        b(n.center[e.typeLower]);
                        t.$slideOutNodes = k();
                        d = e.open_dir
                    }).on(e.events + " panend", function (n) {
                        s > 0 && n.preventDefault()
                    }).on(e.events, function (n) {
                        if (c = n["delta" + e.typeUpper], e.negative && (c = -c), c != l && (d = c >= l ? e.open_dir : e.close_dir), l = c, l > o.threshold && 1 == s) {
                            if (t.$html.hasClass(u.opened)) return;
                            s = 2;
                            v._openSetup();
                            v.trigger("opening");
                            t.$html.addClass(u.dragging);
                            g = f(t.$wndw[h]() * p[h].perc, p[h].min, p[h].max)
                        }
                        2 == s && (y = f(l, 10, g) - ("front" == v.opts.offCanvas.zposition ? g : 0), e.negative && (y = -y), w = "translate" + e.typeUpper + "(" + y + "px )", t.$slideOutNodes.css({
                            "-webkit-transform": "-webkit-" + w,
                            transform: w
                        }))
                    }).on("panend", function () {
                        2 == s && (t.$html.removeClass(u.dragging), t.$slideOutNodes.css("transform", ""), v[d == e.open_dir ? "_openFinish" : "close"]());
                        s = 0
                    })
                }
            }
        }, add: function () {
            return "function" != typeof Hammer || Hammer.VERSION < 2 ? void(n[i].addons[r].setup = function () {
            }) : (u = n[i]._c, e = n[i]._d, o = n[i]._e, void u.add("dragging"))
        }, clickAnchor: function () {
        }
    };
    n[i].defaults[r] = {open: !1, maxStartPos: 100, threshold: 50, vendors: {hammer: {}}};
    n[i].configuration[r] = {width: {perc: .8, min: 140, max: 440}, height: {perc: .8, min: 140, max: 880}}
}(jQuery), function (n) {
    var i = "mmenu", r = "dropdown", t, e, f, u;
    n[i].addons[r] = {
        setup: function () {
            var s, h, v, a;
            if (this.opts.offCanvas) {
                var c = this, o = this.opts[r], l = this.conf[r];
                (u = n[i].glbl, "boolean" == typeof o && o && (o = {drop: o}), "object" != typeof o && (o = {}), "string" == typeof o.position && (o.position = {of: o.position}), o = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], o), o.drop) && ("string" != typeof o.position.of && (s = this.$menu.attr("id"), s && s.length && (this.conf.clone && (s = t.umm(s)), o.position.of = '[href="#' + s + '"]')), "string" == typeof o.position.of && (h = n(o.position.of), h.length && (this.$menu.addClass(t.dropdown), o.tip && this.$menu.addClass(t.tip), o.event = o.event.split(" "), 1 == o.event.length && (o.event[1] = o.event[0]), "hover" == o.event[0] && h.on(f.mouseenter + "-dropdown", function () {
                    c.open()
                }), "hover" == o.event[1] && this.$menu.on(f.mouseleave + "-dropdown", function () {
                    c.close()
                }), this.bind("opening", function () {
                    this.$menu.data(e.style, this.$menu.attr("style") || "");
                    u.$html.addClass(t.dropdown)
                }), this.bind("closed", function () {
                    this.$menu.attr("style", this.$menu.data(e.style));
                    u.$html.removeClass(t.dropdown)
                }), v = function (f, e) {
                    var s = e[0], y = e[1], tt = "x" == f ? "scrollLeft" : "scrollTop",
                        it = "x" == f ? "outerWidth" : "outerHeight", p = "x" == f ? "left" : "top",
                        k = "x" == f ? "right" : "bottom", d = "x" == f ? "width" : "height",
                        rt = "x" == f ? "maxWidth" : "maxHeight", a = null, ut = u.$wndw[tt](), v = h.offset()[p] -= ut,
                        w = v + h[it](), g = u.$wndw[d](), nt = l.offset.button[f] + l.offset.viewport[f], c, b;
                    if (o.position[f]) switch (o.position[f]) {
                        case"left":
                        case"bottom":
                            a = "after";
                            break;
                        case"right":
                        case"top":
                            a = "before"
                    }
                    return null === a && (a = g / 2 > v + (w - v) / 2 ? "after" : "before"), "after" == a ? (c = "x" == f ? v : w, b = g - (c + nt), s[p] = c + l.offset.button[f], s[k] = "auto", y.push(t["x" == f ? "tipleft" : "tiptop"])) : (c = "x" == f ? w : v, b = c - nt, s[k] = "calc( 100% - " + (c - l.offset.button[f]) + "px )", s[p] = "auto", y.push(t["x" == f ? "tipright" : "tipbottom"])), s[rt] = Math.min(n[i].configuration[r][d].max, b), [s, y]
                }, a = function () {
                    if (this.vars.opened) {
                        this.$menu.attr("style", this.$menu.data(e.style));
                        var n = [{}, []];
                        n = v.call(this, "y", n);
                        n = v.call(this, "x", n);
                        this.$menu.css(n[0]);
                        o.tip && this.$menu.removeClass(t.tipleft + " " + t.tipright + " " + t.tiptop + " " + t.tipbottom).addClass(n[1].join(" "))
                    }
                }, this.bind("opening", a), u.$wndw.on(f.resize + "-dropdown", function () {
                    a.call(c)
                }), this.opts.offCanvas.blockUI || u.$wndw.on(f.scroll + "-dropdown", function () {
                    a.call(c)
                }))))
            }
        }, add: function () {
            t = n[i]._c;
            e = n[i]._d;
            f = n[i]._e;
            t.add("dropdown tip tipleft tipright tiptop tipbottom");
            f.add("mouseenter mouseleave resize scroll")
        }, clickAnchor: function () {
        }
    };
    n[i].defaults[r] = {drop: !1, event: "click", position: {}, tip: !0};
    n[i].configuration[r] = {
        offset: {button: {x: -10, y: 10}, viewport: {x: 20, y: 20}},
        height: {max: 880},
        width: {max: 440}
    }
}(jQuery), function (n) {
    var t = "mmenu", i = "fixedElements", u, f, e, r;
    n[t].addons[i] = {
        setup: function () {
            var u, f;
            this.opts.offCanvas && (u = this.opts[i], this.conf[i], r = n[t].glbl, u = this.opts[i] = n.extend(!0, {}, n[t].defaults[i], u), f = function (n) {
                var t = this.conf.classNames[i].fixed;
                this.__refactorClass(n.find("." + t), t, "slideout").appendTo(r.$body)
            }, f.call(this, r.$page), this.bind("setPage", f))
        }, add: function () {
            u = n[t]._c;
            f = n[t]._d;
            e = n[t]._e;
            u.add("fixed")
        }, clickAnchor: function () {
        }
    };
    n[t].configuration.classNames[i] = {fixed: "Fixed"}
}(jQuery), function (n) {
    var i = "mmenu", r = "iconPanels", t, u, f, e;
    n[i].addons[r] = {
        setup: function () {
            var s = this, u = this.opts[r], f, o, h;
            if (this.conf[r], e = n[i].glbl, "boolean" == typeof u && (u = {add: u}), "number" == typeof u && (u = {
                add: !0,
                visible: u
            }), "object" != typeof u && (u = {}), u = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], u), u.visible++, u.add) {
                for (this.$menu.addClass(t.iconpanel), f = [], o = 0; o <= u.visible; o++) f.push(t.iconpanel + "-" + o);
                f = f.join(" ");
                h = function (i) {
                    i.hasClass(t.vertical) || s.$pnls.children("." + t.panel).removeClass(f).filter("." + t.subopened).removeClass(t.hidden).add(i).not("." + t.vertical).slice(-u.visible).each(function (i) {
                        n(this).addClass(t.iconpanel + "-" + i)
                    })
                };
                this.bind("openPanel", h);
                this.bind("init", function (i) {
                    h.call(s, s.$pnls.children("." + t.current));
                    u.hideNavbars && i.removeClass(t.hasnavbar);
                    i.not("." + t.vertical).each(function () {
                        n(this).children("." + t.subblocker).length || n(this).prepend('<a href="#' + n(this).closest("." + t.panel).attr("id") + '" class="' + t.subblocker + '" />')
                    })
                })
            }
        }, add: function () {
            t = n[i]._c;
            u = n[i]._d;
            f = n[i]._e;
            t.add("iconpanel subblocker")
        }, clickAnchor: function () {
        }
    };
    n[i].defaults[r] = {add: !1, visible: 3, hideNavbars: !1}
}(jQuery), function (n) {
    var i = "mmenu", r = "navbars", t, u, f, e;
    n[i].addons[r] = {
        setup: function () {
            var o = this, f = this.opts[r], h = this.conf[r], u, s;
            if (e = n[i].glbl, "undefined" != typeof f) {
                f instanceof Array || (f = [f]);
                u = {};
                n.each(f, function (e) {
                    var s = f[e], c, l, a, v;
                    "boolean" == typeof s && s && (s = {});
                    "object" != typeof s && (s = {});
                    "undefined" == typeof s.content && (s.content = ["prev", "title"]);
                    s.content instanceof Array || (s.content = [s.content]);
                    s = n.extend(!0, {}, o.opts.navbar, s);
                    c = s.position;
                    l = s.height;
                    "number" != typeof l && (l = 1);
                    l = Math.min(4, Math.max(1, l));
                    "bottom" != c && (c = "top");
                    u[c] || (u[c] = 0);
                    u[c]++;
                    a = n("<div />").addClass(t.navbar + " " + t.navbar + "-" + c + " " + t.navbar + "-" + c + "-" + u[c] + " " + t.navbar + "-size-" + l);
                    u[c] += l - 1;
                    for (var p = 0, y = 0, w = s.content.length; w > y; y++) v = n[i].addons[r][s.content[y]] || !1, v ? p += v.call(o, a, s, h) : (v = s.content[y], v instanceof n || (v = n(s.content[y])), a.append(v));
                    p += Math.ceil(a.children().not("." + t.btn).length / l);
                    p > 1 && a.addClass(t.navbar + "-content-" + p);
                    a.children("." + t.btn).length && a.addClass(t.hasbtns);
                    a.prependTo(o.$menu)
                });
                for (s in u) o.$menu.addClass(t.hasnavbar + "-" + s + "-" + u[s])
            }
        }, add: function () {
            t = n[i]._c;
            u = n[i]._d;
            f = n[i]._e;
            t.add("close hasbtns")
        }, clickAnchor: function () {
        }
    };
    n[i].configuration[r] = {breadcrumbSeparator: "/"};
    n[i].configuration.classNames[r] = {}
}(jQuery), function (n) {
    var t = "mmenu";
    n[t].addons["navbars"]["breadcrumbs"] = function (i, r, u) {
        var f = n[t]._c, s = n[t]._d, o, e;
        return f.add("breadcrumbs separator"), o = n('<span class="' + f.breadcrumbs + '" />').appendTo(i), this.bind("init", function (t) {
            t.removeClass(f.hasnavbar).each(function () {
                for (var i, r = [], o = n(this), h = n('<span class="' + f.breadcrumbs + '"><\/span>'), t = n(this).children().first(), e = !0; t && t.length;) t.is("." + f.panel) || (t = t.closest("." + f.panel)), i = t.children("." + f.navbar).children("." + f.title).text(), r.unshift(e ? "<span>" + i + "<\/span>" : '<a href="#' + t.attr("id") + '">' + i + "<\/a>"), e = !1, t = t.data(s.parent);
                h.append(r.join('<span class="' + f.separator + '">' + u.breadcrumbSeparator + "<\/span>")).appendTo(o.children("." + f.navbar))
            })
        }), e = function () {
            o.html(this.$pnls.children("." + f.current).children("." + f.navbar).children("." + f.breadcrumbs).html())
        }, this.bind("openPanel", e), this.bind("init", e), 0
    }
}(jQuery), function (n) {
    var t = "mmenu";
    n[t].addons["navbars"]["close"] = function (i) {
        var r = n[t]._c, f = n[t].glbl, e = n('<a class="' + r.close + " " + r.btn + '" href="#" />').appendTo(i),
            u = function (n) {
                e.attr("href", "#" + n.attr("id"))
            };
        return u.call(this, f.$page), this.bind("setPage", u), -1
    }
}(jQuery), function (n) {
    var t = "mmenu", i = "navbars";
    n[t].addons[i]["next"] = function (r) {
        var u, e, f = n[t]._c, o = n('<a class="' + f.next + " " + f.btn + '" href="#" />').appendTo(r),
            s = function (n) {
                n = n || this.$pnls.children("." + f.current);
                var t = n.find("." + this.conf.classNames[i].panelNext);
                u = t.attr("href");
                e = t.html();
                o[u ? "attr" : "removeAttr"]("href", u);
                o[u || e ? "removeClass" : "addClass"](f.hidden);
                o.html(e)
            };
        return this.bind("openPanel", s), this.bind("init", function () {
            s.call(this)
        }), -1
    };
    n[t].configuration.classNames[i].panelNext = "Next"
}(jQuery), function (n) {
    var t = "mmenu", i = "navbars";
    n[t].addons[i]["prev"] = function (r) {
        var u = n[t]._c, e = n('<a class="' + u.prev + " " + u.btn + '" href="#" />').appendTo(r), f, o, s;
        return this.bind("init", function (n) {
            n.removeClass(u.hasnavbar).children("." + u.navbar).addClass(u.hidden)
        }), s = function (n) {
            if (n = n || this.$pnls.children("." + u.current), !n.hasClass(u.vertical)) {
                var t = n.find("." + this.conf.classNames[i].panelPrev);
                t.length || (t = n.children("." + u.navbar).children("." + u.prev));
                f = t.attr("href");
                o = t.html();
                e[f ? "attr" : "removeAttr"]("href", f);
                e[f || o ? "removeClass" : "addClass"](u.hidden);
                e.html(o)
            }
        }, this.bind("openPanel", s), this.bind("init", function () {
            s.call(this)
        }), -1
    };
    n[t].configuration.classNames[i].panelPrev = "Prev"
}(jQuery), function (n) {
    var t = "mmenu";
    n[t].addons["navbars"]["searchfield"] = function (i) {
        var r = n[t]._c, u = n('<div class="' + r.search + '" />').appendTo(i);
        return "object" != typeof this.opts.searchfield && (this.opts.searchfield = {}), this.opts.searchfield.add = !0, this.opts.searchfield.addTo = u, 0
    }
}(jQuery), function (n) {
    var t = "mmenu", i = "navbars";
    n[t].addons[i]["title"] = function (r, u) {
        var e, o, f = n[t]._c, s = n('<a class="' + f.title + '" />').appendTo(r), h = function (n) {
            if (n = n || this.$pnls.children("." + f.current), !n.hasClass(f.vertical)) {
                var t = n.find("." + this.conf.classNames[i].panelTitle);
                t.length || (t = n.children("." + f.navbar).children("." + f.title));
                e = t.attr("href");
                o = t.html() || u.title;
                s[e ? "attr" : "removeAttr"]("href", e);
                s[e || o ? "removeClass" : "addClass"](f.hidden);
                s.html(o)
            }
        };
        return this.bind("openPanel", h), this.bind("init", function () {
            h.call(this)
        }), 0
    };
    n[t].configuration.classNames[i].panelTitle = "Title"
}(jQuery), function (n) {
    function r(n, t, i) {
        n.prop("aria-" + t, i)[i ? "attr" : "removeAttr"]("aria-" + t, "true")
    }

    function f(n) {
        return '<span class="' + t.sronly + '">' + n + "<\/span>"
    }

    var i = "mmenu", u = "screenReader", t, e, o, s;
    n[i].addons[u] = {
        setup: function () {
            var e = this.opts[u], o = this.conf[u], v, h, c, y, l, a;
            (s = n[i].glbl, "boolean" == typeof e && (e = {
                aria: e,
                text: e
            }), "object" != typeof e && (e = {}), e = this.opts[u] = n.extend(!0, {}, n[i].defaults[u], e), e.aria) && (this.opts.offCanvas && (v = function () {
                r(this.$menu, "hidden", !1)
            }, h = function () {
                r(this.$menu, "hidden", !0)
            }, this.bind("open", v), this.bind("close", h), h.call(this)), c = function () {
                r(this.$menu.find("." + t.hidden), "hidden", !0);
                r(this.$menu.find('[aria-hidden="true"]').not("." + t.hidden), "hidden", !1)
            }, y = function (n) {
                r(this.$pnls.children("." + t.panel).not(n).not("." + t.hidden), "hidden", !0);
                r(n, "hidden", !1)
            }, this.bind("update", c), this.bind("openPanel", c), this.bind("openPanel", y), l = function (n) {
                r(n.find("." + t.prev + ", ." + t.next), "haspopup", !0)
            }, this.bind("init", l), l.call(this, this.$menu.children("." + t.navbar)));
            e.text && (a = function (i) {
                i.children("." + t.navbar).children("." + t.prev).html(f(o.text.closeSubmenu)).end().children("." + t.next).html(f(o.text.openSubmenu)).end().children("." + t.close).html(f(o.text.closeMenu));
                i.is("." + t.panel) && i.find("." + t.listview).find("." + t.next).each(function () {
                    n(this).html(f(o.text[n(this).parent().is("." + t.vertical) ? "toggleSubmenu" : "openSubmenu"]))
                })
            }, this.bind("init", a), a.call(this, this.$menu))
        }, add: function () {
            t = n[i]._c;
            e = n[i]._d;
            o = n[i]._e;
            t.add("sronly")
        }, clickAnchor: function () {
        }
    };
    n[i].defaults[u] = {aria: !1, text: !1};
    n[i].configuration[u] = {
        text: {
            closeMenu: "Close menu",
            closeSubmenu: "Close submenu",
            openSubmenu: "Open submenu",
            toggleSubmenu: "Toggle submenu"
        }
    }
}(jQuery), function (n) {
    function e(n) {
        switch (n) {
            case 9:
            case 16:
            case 17:
            case 18:
            case 37:
            case 38:
            case 39:
            case 40:
                return !0
        }
        return !1
    }

    var u = "mmenu", i = "searchfield", t, f, r, o;
    n[u].addons[i] = {
        setup: function () {
            var h = this, s = this.opts[i], c = this.conf[i];
            o = n[u].glbl;
            "boolean" == typeof s && (s = {add: s});
            "object" != typeof s && (s = {});
            "boolean" == typeof s.resultsPanel && (s.resultsPanel = {add: s.resultsPanel});
            s = this.opts[i] = n.extend(!0, {}, n[u].defaults[i], s);
            c = this.conf[i] = n.extend(!0, {}, n[u].configuration[i], c);
            this.bind("close", function () {
                this.$menu.find("." + t.search).find("input").blur()
            });
            this.bind("init", function (u) {
                var l, o;
                if (s.add) {
                    switch (s.addTo) {
                        case"panels":
                            l = u;
                            break;
                        default:
                            l = this.$menu.find(s.addTo)
                    }
                    (l.each(function () {
                        var i = n(this), f, y, o;
                        if (!i.is("." + t.panel) || !i.is("." + t.vertical)) {
                            if (!i.children("." + t.search).length) {
                                var v = h.__valueOrFn(c.clear, i), e = h.__valueOrFn(c.form, i),
                                    l = h.__valueOrFn(c.input, i), p = h.__valueOrFn(c.submit, i),
                                    u = n("<" + (e ? "form" : "div") + ' class="' + t.search + '" />'),
                                    a = n('<input placeholder="' + s.placeholder + '" type="text" autocomplete="off" />');
                                if (u.append(a), l) for (f in l) a.attr(f, l[f]);
                                if (v && n('<a class="' + t.btn + " " + t.clear + '" href="#" />').appendTo(u).on(r.click + "-searchfield", function (n) {
                                    n.preventDefault();
                                    a.val("").trigger(r.keyup + "-searchfield")
                                }), e) {
                                    for (f in e) u.attr(f, e[f]);
                                    p && !v && n('<a class="' + t.btn + " " + t.next + '" href="#" />').appendTo(u).on(r.click + "-searchfield", function (n) {
                                        n.preventDefault();
                                        u.submit()
                                    })
                                }
                                i.hasClass(t.search) ? i.replaceWith(u) : i.prepend(u).addClass(t.hassearch)
                            }
                            s.noResults && (y = i.closest("." + t.panel).length, (y || (i = h.$pnls.children("." + t.panel).first()), i.children("." + t.noresultsmsg).length) || (o = i.children("." + t.listview).first(), n('<div class="' + t.noresultsmsg + " " + t.hidden + '" />').append(s.noResults)[o.length ? "insertAfter" : "prependTo"](o.length ? o : i)))
                        }
                    }), s.search) && (s.resultsPanel.add && (s.showSubPanels = !1, o = this.$pnls.children("." + t.resultspanel), o.length || (o = n('<div class="' + t.panel + " " + t.resultspanel + " " + t.hidden + '" />').appendTo(this.$pnls).append('<div class="' + t.navbar + " " + t.hidden + '"><a class="' + t.title + '">' + s.resultsPanel.title + "<\/a><\/div>").append('<ul class="' + t.listview + '" />').append(this.$pnls.find("." + t.noresultsmsg).first().clone()), this.init(o))), this.$menu.find("." + t.search).each(function () {
                        var u, v, l = n(this), w = l.closest("." + t.panel).length, p;
                        w ? (u = l.closest("." + t.panel), v = u) : (u = n("." + t.panel, h.$menu), v = h.$menu);
                        s.resultsPanel.add && (u = u.not(o));
                        var c = l.children("input"), b = h.__findAddBack(u, "." + t.listview).children("li"),
                            g = b.filter("." + t.divider), y = h.__filterListItems(b), k = "a", nt = k + ", span",
                            a = "", d = function () {
                                var r = c.val().toLowerCase(), i;
                                r != a && ((a = r, s.resultsPanel.add && o.children("." + t.listview).empty(), u.scrollTop(0), y.add(g).addClass(t.hidden).find("." + t.fullsubopensearch).removeClass(t.fullsubopen + " " + t.fullsubopensearch), y.each(function () {
                                    var i = n(this), r = k, u;
                                    (s.showTextItems || s.showSubPanels && i.find("." + t.next)) && (r = nt);
                                    u = i.data(f.searchtext) || i.children(r).text();
                                    u.toLowerCase().indexOf(a) > -1 && i.add(i.prevAll("." + t.divider).first()).removeClass(t.hidden)
                                }), s.showSubPanels && u.each(function () {
                                    var i = n(this);
                                    h.__filterListItems(i.find("." + t.listview).children()).each(function () {
                                        var i = n(this), r = i.data(f.sub);
                                        i.removeClass(t.nosubresults);
                                        r && r.find("." + t.listview).children().removeClass(t.hidden)
                                    })
                                }), s.resultsPanel.add) ? "" === a ? (this.closeAllPanels(), this.openPanel(this.$pnls.children("." + t.subopened).last())) : (i = n(), u.each(function () {
                                    var r = h.__filterListItems(n(this).find("." + t.listview).children()).not("." + t.hidden).clone(!0);
                                    r.length && (s.resultsPanel.dividers && (i = i.add('<li class="' + t.divider + '">' + n(this).children("." + t.navbar).text() + "<\/li>")), i = i.add(r))
                                }), i.find("." + t.next).remove(), o.children("." + t.listview).append(i), this.openPanel(o)) : n(u.get().reverse()).each(function (i) {
                                    var u = n(this), r = u.data(f.parent);
                                    r && (h.__filterListItems(u.find("." + t.listview).children()).length ? (r.hasClass(t.hidden) && r.children("." + t.next).not("." + t.fullsubopen).addClass(t.fullsubopen).addClass(t.fullsubopensearch), r.removeClass(t.hidden).removeClass(t.nosubresults).prevAll("." + t.divider).first().removeClass(t.hidden)) : w || (u.hasClass(t.opened) && setTimeout(function () {
                                        h.openPanel(r.closest("." + t.panel))
                                    }, (i + 1) * 1.5 * h.conf.openingInterval), r.addClass(t.nosubresults)))
                                }), v.find("." + t.noresultsmsg)[y.not("." + t.hidden).length ? "addClass" : "removeClass"](t.hidden), this.update())
                            };
                        c.off(r.keyup + "-" + i + " " + r.change + "-" + i).on(r.keyup + "-" + i, function (n) {
                            e(n.keyCode) || d.call(h)
                        }).on(r.change + "-" + i, function () {
                            d.call(h)
                        });
                        p = l.children("." + t.btn);
                        p.length && c.on(r.keyup + "-" + i, function () {
                            p[c.val().length ? "removeClass" : "addClass"](t.hidden)
                        });
                        c.trigger(r.keyup + "-" + i)
                    }))
                }
            })
        }, add: function () {
            t = n[u]._c;
            f = n[u]._d;
            r = n[u]._e;
            t.add("clear search hassearch resultspanel noresultsmsg noresults nosubresults fullsubopensearch");
            f.add("searchtext");
            r.add("change keyup")
        }, clickAnchor: function () {
        }
    };
    n[u].defaults[i] = {
        add: !1,
        addTo: "panels",
        placeholder: "Search",
        noResults: "No results found.",
        resultsPanel: {add: !1, dividers: !0, title: "Search results"},
        search: !0,
        showTextItems: !1,
        showSubPanels: !0
    };
    n[u].configuration[i] = {clear: !1, form: !1, input: !1, submit: !1}
}(jQuery), function (n) {
    var i = "mmenu", r = "sectionIndexer", t, f, u, e;
    n[i].addons[r] = {
        setup: function () {
            var o = this, f = this.opts[r];
            this.conf[r];
            e = n[i].glbl;
            "boolean" == typeof f && (f = {add: f});
            "object" != typeof f && (f = {});
            f = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], f);
            this.bind("init", function (i) {
                var r, e;
                if (f.add) {
                    switch (f.addTo) {
                        case"panels":
                            r = i;
                            break;
                        default:
                            r = n(f.addTo, this.$menu).filter("." + t.panel)
                    }
                    r.find("." + t.divider).closest("." + t.panel).addClass(t.hasindexer)
                }
                !this.$indexer && this.$pnls.children("." + t.hasindexer).length && (this.$indexer = n('<div class="' + t.indexer + '" />').prependTo(this.$pnls).append('<a href="#a">a<\/a><a href="#b">b<\/a><a href="#c">c<\/a><a href="#d">d<\/a><a href="#e">e<\/a><a href="#f">f<\/a><a href="#g">g<\/a><a href="#h">h<\/a><a href="#i">i<\/a><a href="#j">j<\/a><a href="#k">k<\/a><a href="#l">l<\/a><a href="#m">m<\/a><a href="#n">n<\/a><a href="#o">o<\/a><a href="#p">p<\/a><a href="#q">q<\/a><a href="#r">r<\/a><a href="#s">s<\/a><a href="#t">t<\/a><a href="#u">u<\/a><a href="#v">v<\/a><a href="#w">w<\/a><a href="#x">x<\/a><a href="#y">y<\/a><a href="#z">z<\/a>'), this.$indexer.children().on(u.mouseover + "-sectionindexer " + t.touchstart + "-sectionindexer", function () {
                    var u = n(this).attr("href").slice(1), i = o.$pnls.children("." + t.current),
                        f = i.find("." + t.listview), r = !1, e = i.scrollTop();
                    i.scrollTop(0);
                    f.children("." + t.divider).not("." + t.hidden).each(function () {
                        r === !1 && u == n(this).text().slice(0, 1).toLowerCase() && (r = n(this).position().top)
                    });
                    i.scrollTop(r !== !1 ? r : e)
                }), e = function (n) {
                    o.$menu[(n.hasClass(t.hasindexer) ? "add" : "remove") + "Class"](t.hasindexer)
                }, this.bind("openPanel", e), e.call(this, this.$pnls.children("." + t.current)))
            })
        }, add: function () {
            t = n[i]._c;
            f = n[i]._d;
            u = n[i]._e;
            t.add("indexer hasindexer");
            u.add("mouseover touchstart")
        }, clickAnchor: function (n) {
            if (n.parent().is("." + t.indexer)) return !0
        }
    };
    n[i].defaults[r] = {add: !1, addTo: "panels"}
}(jQuery), function (n) {
    var i = "mmenu", r = "setSelected", t, u, f, e;
    n[i].addons[r] = {
        setup: function () {
            var f = this.opts[r], o;
            this.conf[r];
            (e = n[i].glbl, "boolean" == typeof f && (f = {
                hover: f,
                parent: f
            }), "object" != typeof f && (f = {}), f = this.opts[r] = n.extend(!0, {}, n[i].defaults[r], f), f.current || this.bind("init", function (n) {
                n.find("." + t.listview).children("." + t.selected).removeClass(t.selected)
            }), f.hover && this.$menu.addClass(t.hoverselected), f.parent) && (this.$menu.addClass(t.parentselected), o = function (n) {
                this.$pnls.find("." + t.listview).find("." + t.next).removeClass(t.selected);
                for (var i = n.data(u.parent); i && i.length;) i = i.children("." + t.next).addClass(t.selected).closest("." + t.panel).data(u.parent)
            }, this.bind("openedPanel", o), this.bind("init", function () {
                o.call(this, this.$pnls.children("." + t.current))
            }))
        }, add: function () {
            t = n[i]._c;
            u = n[i]._d;
            f = n[i]._e;
            t.add("hoverselected parentselected")
        }, clickAnchor: function () {
        }
    };
    n[i].defaults[r] = {current: !0, hover: !1, parent: !1}
}(jQuery), function (n) {
    var t = "mmenu", i = "toggles", r, u, f, e;
    n[t].addons[i] = {
        setup: function () {
            var u = this;
            this.opts[i];
            this.conf[i];
            e = n[t].glbl;
            this.bind("init", function (t) {
                this.__refactorClass(n("input", t), this.conf.classNames[i].toggle, "toggle");
                this.__refactorClass(n("input", t), this.conf.classNames[i].check, "check");
                n("input." + r.toggle + ", input." + r.check, t).each(function () {
                    var t = n(this), i = t.closest("li"), e = t.hasClass(r.toggle) ? "toggle" : "check",
                        f = t.attr("id") || u.__getUniqueId();
                    i.children('label[for="' + f + '"]').length || (t.attr("id", f), i.prepend(t), n('<label for="' + f + '" class="' + r[e] + '"><\/label>').insertBefore(i.children("a, span").last()))
                })
            })
        }, add: function () {
            r = n[t]._c;
            u = n[t]._d;
            f = n[t]._e;
            r.add("toggle check")
        }, clickAnchor: function () {
        }
    };
    n[t].configuration.classNames[i] = {toggle: "Toggle", check: "Check"}
}(jQuery);
customForm = {
    baseOptions: {
        useNativeDropOnMobileDevices: !1,
        unselectableClass: "customForm-unselectable",
        labelActiveClass: "customForm-label-active",
        labelDisabledClass: "customForm-label-disabled",
        classPrefix: "customForm-class-",
        hiddenClass: "customForm-hidden",
        focusClass: "customForm-focus",
        wrapperTag: "div"
    }, customForms: {
        setOptions: function (n) {
            for (var t in n) n.hasOwnProperty(t) && typeof n[t] == "object" && customForm.lib.extend(customForm.modules[t].prototype.defaultOptions, n[t])
        }, replaceAll: function () {
            var i, t, n;
            for (i in customForm.modules) for (t = customForm.lib.queryBySelector(customForm.modules[i].prototype.selector), n = 0; n < t.length; n++) t[n].customForm ? t[n].customForm.refreshState() : !customForm.lib.hasClass(t[n], "default") && customForm.modules[i].prototype.checkElement(t[n]) && new customForm.modules[i]({replaces: t[n]})
        }, refreshElement: function (n) {
            n && n.customForm && n.customForm.refreshState()
        }, refreshAll: function () {
            var i, t, n;
            for (i in customForm.modules) for (t = customForm.lib.queryBySelector(customForm.modules[i].prototype.selector), n = 0; n < t.length; n++) t[n].customForm && t[n].customForm.refreshState()
        }, destroyAll: function () {
            var i, t, n;
            for (i in customForm.modules) for (t = customForm.lib.queryBySelector(customForm.modules[i].prototype.selector), n = 0; n < t.length; n++) t[n].customForm && t[n].customForm.destroy()
        }
    }, isTouchDevice: function () {
        try {
            return "ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch
        } catch (n) {
            return !1
        }
    }(), setBaseModule: function (n) {
        customForm.customControl = function (n) {
            this.options = customForm.lib.extend({}, customForm.baseOptions, this.defaultOptions, n);
            this.init()
        };
        for (var t in n) customForm.customControl.prototype[t] = n[t]
    }, init: function () {
        return this.eventPress = this.isTouchDevice ? "touchstart" : "mousedown", this.eventMove = this.isTouchDevice ? "touchmove" : "mousemove", this.eventRelease = this.isTouchDevice ? "touchend" : "mouseup", this
    }, initStyles: function () {
        var i = document.getElementsByTagName("head")[0],
            t = document.createTextNode("." + customForm.baseOptions.unselectableClass + "{-moz-user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-user-select:none;user-select:none;}"),
            n = document.createElement("style");
        n.type = "text/css";
        n.styleSheet ? n.styleSheet.cssText = t.nodeValue : n.appendChild(t);
        i.appendChild(n)
    }, modules: {}, plugins: {}, addModule: function (n) {
        var t, i;
        if (n.name) {
            customForm.modules[n.name] = function () {
                customForm.modules[n.name].superclass.constructor.apply(this, arguments)
            };
            customForm.lib.inherit(customForm.modules[n.name], customForm.customControl);
            for (t in n) customForm.modules[n.name].prototype[t] = n[t];
            customForm.modules[n.name].prototype.onCreateModule();
            for (i in customForm.modules) if (customForm.modules[i] != customForm.modules[n.name]) customForm.modules[i].prototype.onModuleAdded(customForm.modules[n.name])
        }
    }, addPlugin: function (n) {
        if (n && n.name) {
            customForm.plugins[n.name] = function () {
                this.init.apply(this, arguments)
            };
            for (var t in n) customForm.plugins[n.name].prototype[t] = n[t]
        }
    }
}.init();
customForm.setBaseModule({
    init: function () {
        this.options.replaces && (this.realElement = this.options.replaces, this.realElement.customForm = this, this.replaceObject())
    }, defaultOptions: {}, checkElement: function () {
        return !0
    }, replaceObject: function () {
        this.createWrapper();
        this.attachEvents();
        this.fixStyles();
        this.setupWrapper()
    }, createWrapper: function () {
        this.fakeElement = customForm.lib.createElement(this.options.wrapperTag);
        this.labelFor = customForm.lib.getLabelFor(this.realElement);
        customForm.lib.disableTextSelection(this.fakeElement);
        customForm.lib.addClass(this.fakeElement, customForm.lib.getAllClasses(this.realElement.className, this.options.classPrefix));
        customForm.lib.addClass(this.realElement, customForm.baseOptions.hiddenClass)
    }, attachEvents: function () {
        customForm.lib.event.add(this.realElement, "focus", this.onFocusHandler, this);
        customForm.lib.event.add(this.realElement, "blur", this.onBlurHandler, this);
        customForm.lib.event.add(this.fakeElement, "click", this.onFakeClick, this);
        customForm.lib.event.add(this.fakeElement, customForm.eventPress, this.onFakePressed, this);
        customForm.lib.event.add(this.fakeElement, customForm.eventRelease, this.onFakeReleased, this);
        this.labelFor && (this.labelFor.customForm = this, customForm.lib.event.add(this.labelFor, "click", this.onFakeClick, this), customForm.lib.event.add(this.labelFor, customForm.eventPress, this.onFakePressed, this), customForm.lib.event.add(this.labelFor, customForm.eventRelease, this.onFakeReleased, this))
    }, fixStyles: function () {
        if (customForm.isTouchDevice) {
            var n = "rgba(255,255,255,0)";
            this.realElement.style.webkitTapHighlightColor = n;
            this.fakeElement.style.webkitTapHighlightColor = n;
            this.labelFor && (this.labelFor.style.webkitTapHighlightColor = n)
        }
    }, setupWrapper: function () {
    }, refreshState: function () {
    }, destroy: function () {
        this.fakeElement && this.fakeElement.parentNode && this.fakeElement.parentNode.removeChild(this.fakeElement);
        customForm.lib.removeClass(this.realElement, customForm.baseOptions.hiddenClass);
        this.realElement.customForm = null
    }, onFocus: function () {
        customForm.lib.addClass(this.fakeElement, this.options.focusClass)
    }, onBlur: function () {
        customForm.lib.removeClass(this.fakeElement, this.options.focusClass)
    }, onFocusHandler: function () {
        this.focused || (this.focused = !0, customForm.isTouchDevice && (customForm.focusedInstance && customForm.focusedInstance.realElement != this.realElement && (customForm.focusedInstance.onBlur(), customForm.focusedInstance.realElement.blur()), customForm.focusedInstance = this), this.onFocus.apply(this, arguments))
    }, onBlurHandler: function () {
        this.pressedFlag || (this.focused = !1, this.onBlur.apply(this, arguments))
    }, onFakeClick: function () {
        customForm.isTouchDevice ? this.onFocus() : this.realElement.disabled || this.realElement.focus()
    }, onFakePressed: function () {
        this.pressedFlag = !0
    }, onFakeReleased: function () {
        this.pressedFlag = !1
    }, onCreateModule: function () {
    }, onModuleAdded: function () {
    }, onControlReady: function () {
    }
});
customForm.lib = {
    bind: function (n, t) {
        return function () {
            return n.apply(t, arguments)
        }
    }, browser: function () {
        var n = navigator.userAgent.toLowerCase(), t = {},
            i = /(webkit)[ \/]([\w.]+)/.exec(n) || /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(n) || /(msie) ([\w.]+)/.exec(n) || n.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(n) || [];
        return t[i[1]] = !0, t.version = i[2] || "0", t.safariMac = n.indexOf("mac") != -1 && n.indexOf("safari") != -1, t
    }(), getOffset: function (n) {
        var t, i;
        if (n.getBoundingClientRect) {
            var r = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
                u = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop,
                f = document.documentElement.clientLeft || document.body.clientLeft || 0,
                e = document.documentElement.clientTop || document.body.clientTop || 0;
            return {
                top: Math.round(n.getBoundingClientRect().top + u - e),
                left: Math.round(n.getBoundingClientRect().left + r - f)
            }
        }
        for (t = 0, i = 0; n.offsetParent;) t += n.offsetLeft, i += n.offsetTop, n = n.offsetParent;
        return {top: i, left: t}
    }, getScrollTop: function () {
        return window.pageYOffset || document.documentElement.scrollTop
    }, getScrollLeft: function () {
        return window.pageXOffset || document.documentElement.scrollLeft
    }, getWindowWidth: function () {
        return document.compatMode == "CSS1Compat" ? document.documentElement.clientWidth : document.body.clientWidth
    }, getWindowHeight: function () {
        return document.compatMode == "CSS1Compat" ? document.documentElement.clientHeight : document.body.clientHeight
    }, getStyle: function (n, t) {
        return document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(n, null)[t] : n.currentStyle ? n.currentStyle[t] : n.style[t]
    }, getParent: function (n, t) {
        while (n.parentNode && n.parentNode != document.body) {
            if (n.parentNode.tagName.toLowerCase() == t.toLowerCase()) return n.parentNode;
            n = n.parentNode
        }
        return !1
    }, isParent: function (n, t) {
        while (n.parentNode) {
            if (n.parentNode === t) return !0;
            n = n.parentNode
        }
        return !1
    }, getLabelFor: function (n) {
        return customForm.lib.getParent(n, "label") ? n.parentNode : n.id ? customForm.lib.queryBySelector('label[for="' + n.id + '"]')[0] : void 0
    }, disableTextSelection: function (n) {
        typeof n.onselectstart != "undefined" ? n.onselectstart = function () {
            return !1
        } : window.opera ? n.setAttribute("unselectable", "on") : customForm.lib.addClass(n, customForm.baseOptions.unselectableClass)
    }, enableTextSelection: function (n) {
        typeof n.onselectstart != "undefined" ? n.onselectstart = null : window.opera ? n.removeAttribute("unselectable") : customForm.lib.removeClass(n, customForm.baseOptions.unselectableClass)
    }, queryBySelector: function (n, t) {
        return this.getElementsBySelector(n, t)
    }, prevSibling: function (n) {
        while (n = n.previousSibling) if (n.nodeType == 1) break;
        return n
    }, nextSibling: function (n) {
        while (n = n.nextSibling) if (n.nodeType == 1) break;
        return n
    }, fireEvent: function (n, t) {
        var i;
        return document.createEvent ? (i = document.createEvent("HTMLEvents"), i.initEvent(t, !0, !0), !n.dispatchEvent(i)) : (i = document.createEventObject(), n.fireEvent("on" + t, i))
    }, isParent: function (n, t) {
        while (t.parentNode) {
            if (n == t) return !0;
            t = t.parentNode
        }
        return !1
    }, inherit: function (n, t) {
        var i = function () {
        };
        i.prototype = t.prototype;
        n.prototype = new i;
        n.prototype.constructor = n;
        n.superclass = t.prototype
    }, extend: function (n) {
        for (var i, t = 1; t < arguments.length; t++) for (i in arguments[t]) arguments[t].hasOwnProperty(i) && (n[i] = arguments[t][i]);
        return n
    }, hasClass: function (n, t) {
        return n.className ? n.className.match(new RegExp("(\\s|^)" + t + "(\\s|$)")) : !1
    }, addClass: function (n, t) {
        this.hasClass(n, t) || (n.className += (!n.className.length || n.className.charAt(n.className.length - 1) === " " ? "" : " ") + t)
    }, removeClass: function (n, t) {
        this.hasClass(n, t) && (n.className = n.className.replace(new RegExp("(\\s|^)" + t + "(\\s|$)"), " ").replace(/\s+$/, ""))
    }, toggleClass: function (n, t, i) {
        i ? this.addClass(n, t) : this.removeClass(n, t)
    }, createElement: function (n, t) {
        var r = document.createElement(n), i;
        for (i in t) if (t.hasOwnProperty(i)) switch (i) {
            case"class":
                r.className = t[i];
                break;
            case"html":
                r.innerHTML = t[i];
                break;
            case"style":
                this.setStyles(r, t[i]);
                break;
            default:
                r.setAttribute(i, t[i])
        }
        return r
    }, setStyles: function (n, t) {
        for (var i in t) if (t.hasOwnProperty(i)) switch (i) {
            case"float":
                n.style.cssFloat = t[i];
                break;
            case"opacity":
                n.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + t[i] * 100 + ")";
                n.style.opacity = t[i];
                break;
            default:
                n.style[i] = (typeof t[i] == "undefined" ? 0 : t[i]) + (typeof t[i] == "number" ? "px" : "")
        }
        return n
    }, getInnerWidth: function (n) {
        return n.offsetWidth - (parseInt(this.getStyle(n, "paddingLeft")) || 0) - (parseInt(this.getStyle(n, "paddingRight")) || 0)
    }, getInnerHeight: function (n) {
        return n.offsetHeight - (parseInt(this.getStyle(n, "paddingTop")) || 0) - (parseInt(this.getStyle(n, "paddingBottom")) || 0)
    }, getAllClasses: function (n, t, i) {
        return i || (i = ""), t || (t = ""), n ? n.replace(new RegExp("(\\s|^)" + i + "(\\s|$)"), " ").replace(/[\s]*([\S]+)+[\s]*/gi, t + "$1 ") : ""
    }, getElementsBySelector: function (n, t) {
        var k, p, w, i, d, b, c, a, e, u, l, r, s, f;
        if (typeof document.querySelectorAll == "function") return (t || document).querySelectorAll(n);
        for (k = n.split(","), p = [], w = 0; w < k.length; w++) {
            for (i = [t || document], d = k[w].replace(/^\s+/, "").replace(/\s+$/, "").split(" "), b = 0; b < d.length; b++) {
                if (token = d[b].replace(/^\s+/, "").replace(/\s+$/, ""), token.indexOf("#") > -1) {
                    var y = token.split("#"), o = y[0], nt = y[1], g = document.getElementById(nt);
                    if (o && g.nodeName.toLowerCase() != o) return [];
                    i = [g];
                    continue
                }
                if (token.indexOf(".") > -1) {
                    var y = token.split("."), o = y[0] || "*", tt = y[1], u = [], l = 0;
                    for (r = 0; r < i.length; r++) for (s = o == "*" ? i[r].getElementsByTagName("*") : i[r].getElementsByTagName(o), f = 0; f < s.length; f++) u[l++] = s[f];
                    for (i = [], a = 0, e = 0; e < u.length; e++) u[e].className && u[e].className.match(new RegExp("(\\s|^)" + tt + "(\\s|$)")) && (i[a++] = u[e]);
                    continue
                }
                if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) {
                    var o = RegExp.$1 || "*", h = RegExp.$2, it = RegExp.$3, v = RegExp.$4;
                    for (h.toLowerCase() == "for" && this.browser.msie && this.browser.version < 8 && (h = "htmlFor"), u = [], l = 0, r = 0; r < i.length; r++) for (s = o == "*" ? i[r].getElementsByTagName("*") : i[r].getElementsByTagName(o), f = 0; s[f]; f++) u[l++] = s[f];
                    i = [];
                    a = 0;
                    switch (it) {
                        case"=":
                            c = function (n) {
                                return n.getAttribute(h) == v
                            };
                            break;
                        case"~":
                            c = function (n) {
                                return n.getAttribute(h).match(new RegExp("(\\s|^)" + v + "(\\s|$)"))
                            };
                            break;
                        case"|":
                            c = function (n) {
                                return n.getAttribute(h).match(new RegExp("^" + v + "-?"))
                            };
                            break;
                        case"^":
                            c = function (n) {
                                return n.getAttribute(h).indexOf(v) == 0
                            };
                            break;
                        case"$":
                            c = function (n) {
                                return n.getAttribute(h).lastIndexOf(v) == n.getAttribute(h).length - v.length
                            };
                            break;
                        case"*":
                            c = function (n) {
                                return n.getAttribute(h).indexOf(v) > -1
                            };
                            break;
                        default:
                            c = function (n) {
                                return n.getAttribute(h)
                            }
                    }
                    for (i = [], a = 0, e = 0; e < u.length; e++) c(u[e]) && (i[a++] = u[e]);
                    continue
                }
                for (o = token, u = [], l = 0, r = 0; r < i.length; r++) for (s = i[r].getElementsByTagName(o), f = 0; f < s.length; f++) u[l++] = s[f];
                i = u
            }
            p = [].concat(p, i)
        }
        return p
    }, scrollSize: function () {
        function e() {
            n && u();
            t = document.createElement("div");
            n = document.createElement("div");
            n.style.cssText = "position:absolute;overflow:hidden;width:100px;height:100px";
            n.appendChild(t);
            document.body.appendChild(n)
        }

        function u() {
            document.body.removeChild(n);
            n = null
        }

        function f(f) {
            return e(), t.style.cssText = "height:" + (f ? "100%" : "200px"), r = f ? t.offsetHeight : t.offsetWidth, n.style.overflow = "scroll", t.innerHTML = 1, i = f ? t.offsetHeight : t.offsetWidth, f && n.clientHeight && (i = n.clientHeight), u(), r - i
        }

        var t, n, r, i;
        return {
            getWidth: function () {
                return f(!1)
            }, getHeight: function () {
                return f(!0)
            }
        }
    }(), domReady: function (n) {
        function t() {
            i || (i = !0, n())
        }

        var i = !1;
        if (document.addEventListener) document.addEventListener("DOMContentLoaded", t, !1); else if (document.attachEvent) {
            if (document.documentElement.doScroll && window == window.top) {
                function r() {
                    if (!i && document.body) try {
                        document.documentElement.doScroll("left");
                        t()
                    } catch (n) {
                        setTimeout(r, 0)
                    }
                }

                r()
            }
            document.attachEvent("onreadystatechange", function () {
                document.readyState === "complete" && t()
            })
        }
        window.addEventListener ? window.addEventListener("load", t, !1) : window.attachEvent && window.attachEvent("onload", t)
    }, event: function () {
        function i(n) {
            if (n = n || window.event, n.isFixed) return n;
            if (n.isFixed = !0, n.preventDefault = n.preventDefault || function () {
                this.returnValue = !1
            }, n.stopPropagation = n.stopPropagaton || function () {
                this.cancelBubble = !0
            }, n.target || (n.target = n.srcElement), !n.relatedTarget && n.fromElement && (n.relatedTarget = n.fromElement == n.target ? n.toElement : n.fromElement), n.pageX == null && n.clientX != null) {
                var t = document.documentElement, i = document.body;
                n.pageX = n.clientX + (t && t.scrollLeft || i && i.scrollLeft || 0) - (t.clientLeft || 0);
                n.pageY = n.clientY + (t && t.scrollTop || i && i.scrollTop || 0) - (t.clientTop || 0)
            }
            return !n.which && n.button && (n.which = n.button & 1 ? 1 : n.button & 2 ? 3 : n.button & 4 ? 2 : 0), (n.type === "DOMMouseScroll" || n.type === "mousewheel") && (n.mWheelDelta = 0, n.wheelDelta ? n.mWheelDelta = n.wheelDelta / 120 : n.detail && (n.mWheelDelta = -n.detail / 3)), n
        }

        function r(n, t) {
            var r, u, f, e;
            n = i(n);
            r = this.events[n.type];
            for (u in r) f = r[u], e = f.call(t || this, n), e === !1 && (n.preventDefault(), n.stopPropagation())
        }

        var t = 0, n = {
            add: function (i, u, f, e) {
                i.setInterval && i != window && !i.frameElement && (i = window);
                f.guid || (f.guid = ++t);
                i.events || (i.events = {}, i.handle = function (n) {
                    return r.call(i, n)
                });
                i.events[u] || (i.events[u] = {}, i.addEventListener ? i.addEventListener(u, i.handle, !1) : i.attachEvent && i.attachEvent("on" + u, i.handle), u === "mousewheel" && n.add(i, "DOMMouseScroll", f, e));
                var o = customForm.lib.bind(f, e);
                o.guid = f.guid;
                i.events[u][f.guid] = e ? o : f
            }, remove: function (t, i, r) {
                var u = t.events && t.events[i], f;
                if (u) {
                    delete u[r.guid];
                    for (f in u) return;
                    t.removeEventListener ? t.removeEventListener(i, t.handle, !1) : t.detachEvent && t.detachEvent("on" + i, t.handle);
                    delete t.events[i];
                    for (f in t.events) return;
                    try {
                        delete t.handle;
                        delete t.events
                    } catch (e) {
                        t.removeAttribute && (t.removeAttribute("handle"), t.removeAttribute("events"))
                    }
                    i === "mousewheel" && n.remove(t, "DOMMouseScroll", r)
                }
            }
        };
        return n
    }()
};
customForm.lib.domReady(function () {
    customForm.initStyles()
});
customForm.addModule({
    name: "select",
    selector: "select",
    defaultOptions: {
        showNativeDrop: !1,
        handleDropPosition: !0,
        selectDropPosition: "bottom",
        wrapperClass: "select-area",
        focusClass: "select-focus",
        dropActiveClass: "select-active",
        selectedClass: "item-selected",
        currentSelectedClass: "current-selected",
        disabledClass: "select-disabled",
        valueSelector: "span.center",
        optGroupClass: "optgroup",
        openerSelector: "a.select-opener",
        selectStructure: '<span class="left"><\/span><span class="center"><\/span><a class="select-opener"><\/a>',
        classPrefix: "select-",
        dropMaxHeight: 200,
        dropFlippedClass: "select-options-flipped",
        dropHiddenClass: "options-hidden",
        dropScrollableClass: "options-overflow",
        dropClass: "select-options",
        dropClassPrefix: "drop-",
        dropStructure: '<div class="drop-holder"><div class="drop-list"><\/div><\/div>',
        dropSelector: "div.drop-list"
    },
    checkElement: function (n) {
        return !n.size && !n.multiple
    },
    setupWrapper: function () {
        if (customForm.lib.addClass(this.fakeElement, this.options.wrapperClass), this.realElement.parentNode.insertBefore(this.fakeElement, this.realElement), this.fakeElement.innerHTML = this.options.selectStructure, this.fakeElement.style.width = this.realElement.offsetWidth > 0 ? this.realElement.offsetWidth + "px" : "auto", customForm.isTouchDevice && customForm.baseOptions.useNativeDropOnMobileDevices && (this.options.showNativeDrop = !0), this.options.showNativeDrop && (this.fakeElement.appendChild(this.realElement), customForm.lib.removeClass(this.realElement, this.options.hiddenClass), customForm.lib.setStyles(this.realElement, {
            top: 0,
            left: 0,
            margin: 0,
            padding: 0,
            opacity: 0,
            border: "none",
            position: "absolute",
            width: customForm.lib.getInnerWidth(this.fakeElement) - 1,
            height: customForm.lib.getInnerHeight(this.fakeElement) - 1
        })), this.opener = customForm.lib.queryBySelector(this.options.openerSelector, this.fakeElement)[0], this.valueText = customForm.lib.queryBySelector(this.options.valueSelector, this.fakeElement)[0], customForm.lib.disableTextSelection(this.valueText), this.opener.customForm = this, this.options.showNativeDrop) this.refreshState(); else {
            this.createDropdown();
            this.refreshState();
            this.onControlReady(this);
            this.hideDropdown(!0)
        }
        this.addEvents()
    },
    addEvents: function () {
        this.options.showNativeDrop ? customForm.lib.event.add(this.realElement, "click", this.onChange, this) : customForm.lib.event.add(this.fakeElement, "click", this.toggleDropdown, this);
        customForm.lib.event.add(this.realElement, "change", this.onChange, this)
    },
    onFakeClick: function () {
    },
    onFocus: function () {
        customForm.modules[this.name].superclass.onFocus.apply(this, arguments);
        this.options.showNativeDrop || (customForm.lib.browser.safariMac && this.realElement.setAttribute("size", "2"), customForm.lib.event.add(this.realElement, "keydown", this.onKeyDown, this), customForm.activeControl && customForm.activeControl != this && (customForm.activeControl.hideDropdown(), customForm.activeControl = this))
    },
    onBlur: function () {
        this.options.showNativeDrop ? customForm.modules[this.name].superclass.onBlur.apply(this) : (customForm.lib.browser.safariMac && this.realElement.removeAttribute("size"), this.isActiveDrop() && this.isOverDrop() || (customForm.modules[this.name].superclass.onBlur.apply(this), customForm.activeControl === this && (customForm.activeControl = null), customForm.isTouchDevice || this.hideDropdown()), customForm.lib.event.remove(this.realElement, "keydown", this.onKeyDown))
    },
    onChange: function () {
        this.refreshState()
    },
    onKeyDown: function (n) {
        customForm.tmpFlag = !0;
        setTimeout(function () {
            customForm.tmpFlag = !1
        }, 100);
        var t = this;
        return t.keyboardFix = !0, setTimeout(function () {
            t.refreshState()
        }, 10), n.keyCode == 13 ? (t.toggleDropdown.apply(t), !1) : void 0
    },
    onResizeWindow: function () {
        this.isActiveDrop() && this.hideDropdown()
    },
    onScrollWindow: function () {
        this.isActiveDrop() && this.positionDropdown()
    },
    onOptionClick: function (n) {
        var t = n.target && n.target.tagName && n.target.tagName.toLowerCase() == "li" ? n.target : customForm.lib.getParent(n.target, "li");
        return t && (this.realElement.selectedIndex = parseInt(t.getAttribute("rel")), customForm.isTouchDevice ? this.onFocus() : this.realElement.focus(), this.refreshState(), this.hideDropdown(), customForm.lib.fireEvent(this.realElement, "change")), !1
    },
    onClickOutside: function (n) {
        if (customForm.tmpFlag) {
            customForm.tmpFlag = !1;
            return
        }
        customForm.lib.isParent(this.fakeElement, n.target) || customForm.lib.isParent(this.selectDrop, n.target) || this.hideDropdown()
    },
    onDropHover: function (n) {
        if (this.keyboardFix) this.keyboardFix = !1; else {
            this.hoverFlag = !0;
            var t = n.target && n.target.tagName && n.target.tagName.toLowerCase() == "li" ? n.target : customForm.lib.getParent(n.target, "li");
            t && (this.realElement.selectedIndex = parseInt(t.getAttribute("rel")), this.refreshSelectedClass(parseInt(t.getAttribute("rel"))))
        }
    },
    onDropLeave: function () {
        this.hoverFlag = !1
    },
    isActiveDrop: function () {
        return !customForm.lib.hasClass(this.selectDrop, this.options.dropHiddenClass)
    },
    isOverDrop: function () {
        return this.hoverFlag
    },
    createDropdown: function () {
        this.selectDrop && this.selectDrop.parentNode.removeChild(this.selectDrop);
        this.selectDrop = document.createElement("div");
        this.selectDrop.className = this.options.dropClass;
        this.selectDrop.innerHTML = this.options.dropStructure;
        customForm.lib.setStyles(this.selectDrop, {position: "absolute"});
        this.selectList = customForm.lib.queryBySelector(this.options.dropSelector, this.selectDrop)[0];
        customForm.lib.addClass(this.selectDrop, this.options.dropHiddenClass);
        document.body.appendChild(this.selectDrop);
        this.selectDrop.customForm = this;
        customForm.lib.event.add(this.selectDrop, "click", this.onOptionClick, this);
        customForm.lib.event.add(this.selectDrop, "mouseover", this.onDropHover, this);
        customForm.lib.event.add(this.selectDrop, "mouseout", this.onDropLeave, this);
        this.buildDropdown()
    },
    buildDropdown: function () {
        this.buildDropdownOptions();
        this.positionDropdown();
        this.buildDropdownScroll()
    },
    buildDropdownOptions: function () {
        this.resStructure = "";
        this.optNum = 0;
        for (var n = 0; n < this.realElement.children.length; n++) this.resStructure += this.buildElement(this.realElement.children[n]) + "\n";
        this.selectList.innerHTML = this.resStructure
    },
    buildDropdownScroll: function () {
        this.options.dropMaxHeight && this.selectDrop.offsetHeight > this.options.dropMaxHeight && (this.selectList.style.height = this.options.dropMaxHeight + "px", this.selectList.style.overflow = "auto", this.selectList.style.overflowX = "hidden", customForm.lib.addClass(this.selectDrop, this.options.dropScrollableClass));
        customForm.lib.addClass(this.selectDrop, customForm.lib.getAllClasses(this.realElement.className, this.options.dropClassPrefix, customForm.baseOptions.hiddenClass))
    },
    parseOptionTitle: function (n) {
        return typeof n == "string" && /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i.test(n) ? n : ""
    },
    buildElement: function (n) {
        var t = "", r, i;
        if (n.tagName.toLowerCase() == "option") return customForm.lib.prevSibling(n) && customForm.lib.prevSibling(n).tagName.toLowerCase() == "option" || (t += "<ul>"), r = this.parseOptionTitle(n.title), t += '<li rel="' + this.optNum++ + '" class="' + (n.className ? n.className + " " : "") + 'customFormcalc"><a href="#">' + (r ? '<img src="' + r + '" alt="" />' : "") + "<span>" + n.innerHTML + "<\/span><\/a><\/li>", customForm.lib.nextSibling(n) && customForm.lib.nextSibling(n).tagName.toLowerCase() == "option" || (t += "<\/ul>"), t;
        if (n.tagName.toLowerCase() == "optgroup" && n.label) {
            for (t += '<div class="' + this.options.optGroupClass + '">', t += '<strong class="customFormcalc"><em>' + n.label + "<\/em><\/strong>", i = 0; i < n.children.length; i++) t += this.buildElement(n.children[i]);
            return t + "<\/div>"
        }
    },
    positionDropdown: function () {
        var n = customForm.lib.getOffset(this.fakeElement), i = this.fakeElement.offsetHeight,
            t = this.selectDrop.offsetHeight,
            r = n.top - t >= customForm.lib.getScrollTop() && customForm.lib.getScrollTop() + customForm.lib.getWindowHeight() < n.top + i + t;
        this.options.handleDropPosition && r || this.options.selectDropPosition === "top" ? (this.selectDrop.style.top = n.top - t + "px", customForm.lib.addClass(this.selectDrop, this.options.dropFlippedClass)) : (this.selectDrop.style.top = n.top + i + "px", customForm.lib.removeClass(this.selectDrop, this.options.dropFlippedClass));
        this.selectDrop.style.left = n.left + "px";
        this.selectDrop.style.width = this.fakeElement.offsetWidth + "px"
    },
    showDropdown: function () {
        document.body.appendChild(this.selectDrop);
        customForm.lib.removeClass(this.selectDrop, this.options.dropHiddenClass);
        customForm.lib.addClass(this.fakeElement, this.options.dropActiveClass);
        this.positionDropdown();
        var n = this.getFakeActiveOption();
        this.removeClassFromItems(this.options.currentSelectedClass);
        customForm.lib.addClass(n, this.options.currentSelectedClass);
        customForm.lib.event.add(window, "resize", this.onResizeWindow, this);
        customForm.lib.event.add(window, "scroll", this.onScrollWindow, this);
        customForm.lib.event.add(document, customForm.eventPress, this.onClickOutside, this);
        this.positionDropdown()
    },
    hideDropdown: function (n) {
        this.selectDrop.parentNode && (this.selectDrop.offsetWidth && this.selectDrop.parentNode.removeChild(this.selectDrop), n) || (typeof this.origSelectedIndex == "number" && (this.realElement.selectedIndex = this.origSelectedIndex), customForm.lib.removeClass(this.fakeElement, this.options.dropActiveClass), customForm.lib.addClass(this.selectDrop, this.options.dropHiddenClass), customForm.lib.event.remove(window, "resize", this.onResizeWindow), customForm.lib.event.remove(window, "scroll", this.onScrollWindow), customForm.lib.event.remove(document.documentElement, customForm.eventPress, this.onClickOutside), customForm.isTouchDevice && this.onBlur())
    },
    toggleDropdown: function () {
        this.realElement.disabled || (customForm.isTouchDevice ? this.onFocus() : this.realElement.focus(), this.dropOpened = !0, this.isActiveDrop() ? this.hideDropdown() : this.showDropdown(), this.refreshState())
    },
    scrollToItem: function () {
        if (this.isActiveDrop()) {
            var t = this.selectList.offsetHeight, n = this.calcOptionOffset(this.getFakeActiveOption()),
                i = this.selectList.scrollTop, r = this.getFakeActiveOption().offsetHeight;
            n >= i + t ? this.selectList.scrollTop = n - t + r : n < i && (this.selectList.scrollTop = n)
        }
    },
    getFakeActiveOption: function (n) {
        return customForm.lib.queryBySelector('li[rel="' + (typeof n == "number" ? n : this.realElement.selectedIndex) + '"]', this.selectList)[0]
    },
    calcOptionOffset: function (n) {
        for (var r = 0, i = customForm.lib.queryBySelector(".customFormcalc", this.selectList), t = 0; t < i.length; t++) {
            if (i[t] == n) break;
            r += i[t].offsetHeight
        }
        return r
    },
    childrenHasItem: function (n, t) {
        var r = n.getElementsByTagName("*");
        for (i = 0; i < r.length; i++) if (r[i] == t) return !0;
        return !1
    },
    removeClassFromItems: function (n) {
        for (var i = customForm.lib.queryBySelector("li", this.selectList), t = i.length - 1; t >= 0; t--) customForm.lib.removeClass(i[t], n)
    },
    setSelectedClass: function (n) {
        customForm.lib.addClass(this.getFakeActiveOption(n), this.options.selectedClass)
    },
    refreshSelectedClass: function (n) {
        this.options.showNativeDrop || (this.removeClassFromItems(this.options.selectedClass), this.setSelectedClass(n));
        this.realElement.disabled ? (customForm.lib.addClass(this.fakeElement, this.options.disabledClass), this.labelFor && customForm.lib.addClass(this.labelFor, this.options.labelDisabledClass)) : (customForm.lib.removeClass(this.fakeElement, this.options.disabledClass), this.labelFor && customForm.lib.removeClass(this.labelFor, this.options.labelDisabledClass))
    },
    refreshSelectedText: function () {
        if (!this.dropOpened && this.realElement.title) this.valueText.innerHTML = this.realElement.title; else if (this.realElement.options[this.realElement.selectedIndex].title) {
            var n = this.parseOptionTitle(this.realElement.options[this.realElement.selectedIndex].title);
            this.valueText.innerHTML = (n ? '<img src="' + n + '" alt="" />' : "") + this.realElement.options[this.realElement.selectedIndex].innerHTML
        } else this.valueText.innerHTML = this.realElement.options[this.realElement.selectedIndex].innerHTML
    },
    refreshState: function () {
        this.origSelectedIndex = this.realElement.selectedIndex;
        this.refreshSelectedClass();
        this.refreshSelectedText();
        this.options.showNativeDrop || (this.positionDropdown(), this.selectDrop.offsetWidth && this.scrollToItem())
    }
});
customForm.addModule({
    name: "checkbox",
    selector: 'input[type="checkbox"]',
    defaultOptions: {
        wrapperClass: "chk-area",
        focusClass: "chk-focus",
        checkedClass: "chk-checked",
        labelActiveClass: "chk-label-active",
        uncheckedClass: "chk-unchecked",
        disabledClass: "chk-disabled",
        chkStructure: "<span><\/span>"
    },
    setupWrapper: function () {
        customForm.lib.addClass(this.fakeElement, this.options.wrapperClass);
        this.fakeElement.innerHTML = this.options.chkStructure;
        this.realElement.parentNode.insertBefore(this.fakeElement, this.realElement);
        customForm.lib.event.add(this.realElement, "click", this.onRealClick, this);
        this.refreshState()
    },
    onFakePressed: function () {
        customForm.modules[this.name].superclass.onFakePressed.apply(this, arguments);
        this.realElement.disabled || this.realElement.focus()
    },
    onFakeClick: function () {
        return customForm.modules[this.name].superclass.onFakeClick.apply(this, arguments), this.tmpTimer = setTimeout(customForm.lib.bind(function () {
            this.toggle()
        }, this), 10), !1
    },
    onRealClick: function (n) {
        setTimeout(customForm.lib.bind(function () {
            this.refreshState()
        }, this), 10);
        n.stopPropagation()
    },
    toggle: function () {
        return this.realElement.disabled || (this.realElement.checked = this.realElement.checked ? !1 : !0, customForm.lib.fireEvent(this.realElement, "change")), this.refreshState(), !1
    },
    refreshState: function () {
        this.realElement.checked ? (customForm.lib.addClass(this.fakeElement, this.options.checkedClass), customForm.lib.removeClass(this.fakeElement, this.options.uncheckedClass), this.labelFor && customForm.lib.addClass(this.labelFor, this.options.labelActiveClass)) : (customForm.lib.removeClass(this.fakeElement, this.options.checkedClass), customForm.lib.addClass(this.fakeElement, this.options.uncheckedClass), this.labelFor && customForm.lib.removeClass(this.labelFor, this.options.labelActiveClass));
        this.realElement.disabled ? (customForm.lib.addClass(this.fakeElement, this.options.disabledClass), this.labelFor && customForm.lib.addClass(this.labelFor, this.options.labelDisabledClass)) : (customForm.lib.removeClass(this.fakeElement, this.options.disabledClass), this.labelFor && customForm.lib.removeClass(this.labelFor, this.options.labelDisabledClass))
    }
});
$(".switch-toggle.switch-candy").length == -1 && customForm.addModule({
    name: "radio",
    selector: 'input[type="radio"]',
    defaultOptions: {
        wrapperClass: "rad-area",
        focusClass: "rad-focus",
        checkedClass: "rad-checked",
        uncheckedClass: "rad-unchecked",
        disabledClass: "rad-disabled",
        radStructure: "<span><\/span>"
    },
    getRadioGroup: function (n) {
        var t = n.getAttribute("name");
        return t ? customForm.lib.queryBySelector('input[name="' + t + '"]', customForm.lib.getParent("form")) : [n]
    },
    setupWrapper: function () {
        customForm.lib.addClass(this.fakeElement, this.options.wrapperClass);
        this.fakeElement.innerHTML = this.options.radStructure;
        this.realElement.parentNode.insertBefore(this.fakeElement, this.realElement);
        this.refreshState();
        this.addEvents()
    },
    addEvents: function () {
        customForm.lib.event.add(this.fakeElement, "click", this.toggleRadio, this);
        this.labelFor && customForm.lib.event.add(this.labelFor, "click", this.toggleRadio, this)
    },
    onFocus: function () {
        customForm.modules[this.name].superclass.onFocus.apply(this, arguments);
        setTimeout(customForm.lib.bind(function () {
            this.refreshState()
        }, this), 10)
    },
    toggleRadio: function () {
        this.realElement.disabled || (this.realElement.checked = !0);
        this.refreshState();
        customForm.lib.fireEvent(this.realElement, "change")
    },
    refreshState: function () {
        for (var i = this.getRadioGroup(this.realElement), n, t = 0; t < i.length; t++) n = i[t].customForm, n && (n.realElement.checked ? (customForm.lib.addClass(n.fakeElement, n.options.checkedClass), customForm.lib.removeClass(n.fakeElement, n.options.uncheckedClass), n.labelFor && customForm.lib.addClass(n.labelFor, n.options.labelActiveClass)) : (customForm.lib.removeClass(n.fakeElement, n.options.checkedClass), customForm.lib.addClass(n.fakeElement, n.options.uncheckedClass), n.labelFor && customForm.lib.removeClass(n.labelFor, n.options.labelActiveClass)), n.realElement.disabled ? (customForm.lib.addClass(n.fakeElement, n.options.disabledClass), n.labelFor && customForm.lib.addClass(n.labelFor, n.options.labelDisabledClass)) : (customForm.lib.removeClass(n.fakeElement, n.options.disabledClass), n.labelFor && customForm.lib.removeClass(n.labelFor, n.options.labelDisabledClass)))
    }
}), function (n) {
    var f = -1, r = -1, i = function (n) {
        return parseFloat(n) || 0
    }, o = function (t) {
        var u = null, r = [];
        return n(t).each(function () {
            var t = n(this), f = t.offset().top - i(t.css("margin-top")), e = 0 < r.length ? r[r.length - 1] : null;
            null === e ? r.push(t) : 1 >= Math.floor(Math.abs(u - f)) ? r[r.length - 1] = e.add(t) : r.push(t);
            u = f
        }), r
    }, e = function (t) {
        var i = {byRow: !0, property: "height", target: null, remove: !1};
        return "object" == typeof t ? n.extend(i, t) : ("boolean" == typeof t ? i.byRow = t : "remove" === t && (i.remove = !0), i)
    }, t = n.fn.matchHeight = function (i) {
        if (i = e(i), i.remove) {
            var r = this;
            return this.css(i.property, ""), n.each(t._groups, function (n, t) {
                t.elements = t.elements.not(r)
            }), this
        }
        return 1 >= this.length && !i.target ? this : (t._groups.push({
            elements: this,
            options: i
        }), t._apply(this, i), this)
    }, u;
    t._groups = [];
    t._throttle = 80;
    t._maintainScroll = !1;
    t._beforeUpdate = null;
    t._afterUpdate = null;
    t._apply = function (r, u) {
        var f = e(u), s = n(r), c = [s], l = n(window).scrollTop(), a = n("html").outerHeight(!0),
            h = s.parents().filter(":hidden");
        return h.each(function () {
            var t = n(this);
            t.data("style-cache", t.attr("style"))
        }), h.css("display", "block"), f.byRow && !f.target && (s.each(function () {
            var t = n(this), i = "inline-block" === t.css("display") ? "inline-block" : "block";
            t.data("style-cache", t.attr("style"));
            t.css({
                display: i,
                "padding-top": "0",
                "padding-bottom": "0",
                "margin-top": "0",
                "margin-bottom": "0",
                "border-top-width": "0",
                "border-bottom-width": "0",
                height: "100px"
            })
        }), c = o(s), s.each(function () {
            var t = n(this);
            t.attr("style", t.data("style-cache") || "")
        })), n.each(c, function (t, r) {
            var u = n(r), e = 0;
            if (f.target) e = f.target.outerHeight(!1); else {
                if (f.byRow && 1 >= u.length) {
                    u.css(f.property, "");
                    return
                }
                u.each(function () {
                    var t = n(this), i = {display: "inline-block" === t.css("display") ? "inline-block" : "block"};
                    i[f.property] = "";
                    t.css(i);
                    t.outerHeight(!1) > e && (e = t.outerHeight(!1));
                    t.css("display", "")
                })
            }
            u.each(function () {
                var t = n(this), r = 0;
                f.target && t.is(f.target) || ("border-box" !== t.css("box-sizing") && (r += i(t.css("border-top-width")) + i(t.css("border-bottom-width")), r += i(t.css("padding-top")) + i(t.css("padding-bottom"))), t.css(f.property, e - r))
            })
        }), h.each(function () {
            var t = n(this);
            t.attr("style", t.data("style-cache") || null)
        }), t._maintainScroll && n(window).scrollTop(l / a * n("html").outerHeight(!0)), this
    };
    t._applyDataApi = function () {
        var t = {};
        n("[data-match-height], [data-mh]").each(function () {
            var i = n(this), r = i.attr("data-mh") || i.attr("data-match-height");
            t[r] = r in t ? t[r].add(i) : i
        });
        n.each(t, function () {
            this.matchHeight(!0)
        })
    };
    u = function (i) {
        t._beforeUpdate && t._beforeUpdate(i, t._groups);
        n.each(t._groups, function () {
            t._apply(this.elements, this.options)
        });
        t._afterUpdate && t._afterUpdate(i, t._groups)
    };
    t._update = function (i, e) {
        if (e && "resize" === e.type) {
            var o = n(window).width();
            if (o === f) return;
            f = o
        }
        i ? -1 === r && (r = setTimeout(function () {
            u(e);
            r = -1
        }, t._throttle)) : u(e)
    };
    n(t._applyDataApi);
    n(window).bind("load", function (n) {
        t._update(!1, n)
    });
    n(window).bind("resize orientationchange", function (n) {
        t._update(!0, n)
    })
}(jQuery);
!function (n) {
    "function" == typeof define && define.amd ? define(["jquery"], n) : "object" == typeof exports ? module.exports = n(require("jquery")) : n(jQuery)
}(function (n) {
    n.fn.jScrollPane = function (t) {
        function i(t, i) {
            function fi(i) {
                var c, k, d, v, y, w, g = !1, nt = !1;
                if (r = i, void 0 === u) y = t.scrollTop(), w = t.scrollLeft(), t.css({
                    overflow: "hidden",
                    padding: 0
                }), o = t.innerWidth() + et, e = t.innerHeight(), t.width(o), u = n('<div class="jspPane" />').css("padding", ci).append(t.children()), f = n('<div class="jspContainer" />').css({
                    width: o + "px",
                    height: e + "px"
                }).append(u).appendTo(t); else {
                    if (t.css("width", ""), g = r.stickToBottom && fr(), nt = r.stickToRight && er(), v = t.innerWidth() + et != o || t.outerHeight() != e, v && (o = t.innerWidth() + et, e = t.innerHeight(), f.css({
                        width: o + "px",
                        height: e + "px"
                    })), !v && ki == a && u.outerHeight() == l) return void t.width(o);
                    ki = a;
                    u.css("width", "");
                    t.width(o);
                    f.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()
                }
                u.css("overflow", "auto");
                a = i.contentWidth ? i.contentWidth : u[0].scrollWidth;
                l = u[0].scrollHeight;
                u.css("overflow", "");
                si = a / o;
                dt = l / e;
                b = dt > 1;
                p = si > 1;
                p || b ? (t.addClass("jspScrollable"), c = r.maintainPosition && (s || h), c && (k = it(), d = rt()), di(), gi(), nr(), c && (ct(nt ? a - o : k, !1), tt(g ? l - e : d, !1)), hr(), or(), pr(), r.enableKeyboardNavigation && lr(), r.clickOnTrack && ir(), vr(), r.hijackInternalLinks && yr()) : (t.removeClass("jspScrollable"), u.css({
                    top: 0,
                    left: 0,
                    width: f.width() - et
                }), sr(), cr(), ar(), wi());
                r.autoReinitialise && !vt ? vt = setInterval(function () {
                    fi(r)
                }, r.autoReinitialiseDelay) : !r.autoReinitialise && vt && clearInterval(vt);
                y && t.scrollTop(0) && tt(y, !1);
                w && t.scrollLeft(0) && ct(w, !1);
                t.trigger("jsp-initialised", [p || b])
            }

            function di() {
                b && (f.append(n('<div class="jspVerticalBar" />').append(n('<div class="jspCap jspCapTop" />'), n('<div class="jspTrack" />').append(n('<div class="jspDrag" />').append(n('<div class="jspDragTop" />'), n('<div class="jspDragBottom" />'))), n('<div class="jspCap jspCapBottom" />'))), gt = f.find(">.jspVerticalBar"), d = gt.find(">.jspTrack"), v = d.find(">.jspDrag"), r.showArrows && (yt = n('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp", nt(0, -1)).bind("click.jsp", lt), pt = n('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp", nt(0, 1)).bind("click.jsp", lt), r.arrowScrollOnHover && (yt.bind("mouseover.jsp", nt(0, -1, yt)), pt.bind("mouseover.jsp", nt(0, 1, pt))), pi(d, r.verticalArrowPositions, yt, pt)), at = e, f.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function () {
                    at -= n(this).outerHeight()
                }), v.hover(function () {
                    v.addClass("jspHover")
                }, function () {
                    v.removeClass("jspHover")
                }).bind("mousedown.jsp", function (t) {
                    n("html").bind("dragstart.jsp selectstart.jsp", lt);
                    v.addClass("jspActive");
                    var i = t.pageY - v.position().top;
                    return n("html").bind("mousemove.jsp", function (n) {
                        ot(n.pageY - i, !1)
                    }).bind("mouseup.jsp mouseleave.jsp", bi), !1
                }), vi())
            }

            function vi() {
                d.height(at + "px");
                s = 0;
                hi = r.verticalGutter + d.outerWidth();
                u.width(o - hi - et);
                try {
                    0 === gt.position().left && u.css("margin-left", hi + "px")
                } catch (n) {
                }
            }

            function gi() {
                p && (f.append(n('<div class="jspHorizontalBar" />').append(n('<div class="jspCap jspCapLeft" />'), n('<div class="jspTrack" />').append(n('<div class="jspDrag" />').append(n('<div class="jspDragLeft" />'), n('<div class="jspDragRight" />'))), n('<div class="jspCap jspCapRight" />'))), ni = f.find(">.jspHorizontalBar"), g = ni.find(">.jspTrack"), y = g.find(">.jspDrag"), r.showArrows && (wt = n('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp", nt(-1, 0)).bind("click.jsp", lt), bt = n('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp", nt(1, 0)).bind("click.jsp", lt), r.arrowScrollOnHover && (wt.bind("mouseover.jsp", nt(-1, 0, wt)), bt.bind("mouseover.jsp", nt(1, 0, bt))), pi(g, r.horizontalArrowPositions, wt, bt)), y.hover(function () {
                    y.addClass("jspHover")
                }, function () {
                    y.removeClass("jspHover")
                }).bind("mousedown.jsp", function (t) {
                    n("html").bind("dragstart.jsp selectstart.jsp", lt);
                    y.addClass("jspActive");
                    var i = t.pageX - y.position().left;
                    return n("html").bind("mousemove.jsp", function (n) {
                        ht(n.pageX - i, !1)
                    }).bind("mouseup.jsp mouseleave.jsp", bi), !1
                }), st = f.innerWidth(), yi())
            }

            function yi() {
                f.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function () {
                    st -= n(this).outerWidth()
                });
                g.width(st + "px");
                h = 0
            }

            function nr() {
                if (p && b) {
                    var t = g.outerHeight(), i = d.outerWidth();
                    at -= t;
                    n(ni).find(">.jspCap:visible,>.jspArrow").each(function () {
                        st += n(this).outerWidth()
                    });
                    st -= i;
                    e -= i;
                    o -= t;
                    g.parent().append(n('<div class="jspCorner" />').css("width", t + "px"));
                    vi();
                    yi()
                }
                p && u.width(f.outerWidth() - et + "px");
                l = u.outerHeight();
                dt = l / e;
                p && (ft = Math.ceil(1 / si * st), ft > r.horizontalDragMaxWidth ? ft = r.horizontalDragMaxWidth : ft < r.horizontalDragMinWidth && (ft = r.horizontalDragMinWidth), y.width(ft + "px"), k = st - ft, oi(h));
                b && (ut = Math.ceil(1 / dt * at), ut > r.verticalDragMaxHeight ? ut = r.verticalDragMaxHeight : ut < r.verticalDragMinHeight && (ut = r.verticalDragMinHeight), v.height(ut + "px"), w = at - ut, ei(s))
            }

            function pi(n, t, i, r) {
                var e, u = "before", f = "after";
                "os" == t && (t = /Mac/.test(navigator.platform) ? "after" : "split");
                t == u ? f = t : t == f && (u = t, e = i, i = r, r = e);
                n[u](i)[f](r)
            }

            function nt(n, t, i) {
                return function () {
                    return tr(n, t, this, i), this.blur(), !1
                }
            }

            function tr(t, i, u, f) {
                u = n(u).addClass("jspActive");
                var o, e, s = !0, h = function () {
                    0 !== t && c.scrollByX(t * r.arrowButtonSpeed);
                    0 !== i && c.scrollByY(i * r.arrowButtonSpeed);
                    e = setTimeout(h, s ? r.initialDelay : r.arrowRepeatFreq);
                    s = !1
                };
                h();
                o = f ? "mouseout.jsp" : "mouseup.jsp";
                f = f || n("html");
                f.bind(o, function () {
                    u.removeClass("jspActive");
                    e && clearTimeout(e);
                    e = null;
                    f.unbind(o)
                })
            }

            function ir() {
                wi();
                b && d.bind("mousedown.jsp", function (t) {
                    if (void 0 === t.originalTarget || t.originalTarget == t.currentTarget) {
                        var i, f = n(this), v = f.offset(), o = t.pageY - v.top - s, h = !0, a = function () {
                            var p = f.offset(), n = t.pageY - p.top - ut / 2, v = e * r.scrollPagePercent,
                                y = w * v / (l - e);
                            if (0 > o) s - y > n ? c.scrollByY(-v) : ot(n); else {
                                if (!(o > 0)) return void u();
                                n > s + y ? c.scrollByY(v) : ot(n)
                            }
                            i = setTimeout(a, h ? r.initialDelay : r.trackClickRepeatFreq);
                            h = !1
                        }, u = function () {
                            i && clearTimeout(i);
                            i = null;
                            n(document).unbind("mouseup.jsp", u)
                        };
                        return a(), n(document).bind("mouseup.jsp", u), !1
                    }
                });
                p && g.bind("mousedown.jsp", function (t) {
                    if (void 0 === t.originalTarget || t.originalTarget == t.currentTarget) {
                        var i, f = n(this), v = f.offset(), e = t.pageX - v.left - h, s = !0, l = function () {
                            var p = f.offset(), n = t.pageX - p.left - ft / 2, v = o * r.scrollPagePercent,
                                y = k * v / (a - o);
                            if (0 > e) h - y > n ? c.scrollByX(-v) : ht(n); else {
                                if (!(e > 0)) return void u();
                                n > h + y ? c.scrollByX(v) : ht(n)
                            }
                            i = setTimeout(l, s ? r.initialDelay : r.trackClickRepeatFreq);
                            s = !1
                        }, u = function () {
                            i && clearTimeout(i);
                            i = null;
                            n(document).unbind("mouseup.jsp", u)
                        };
                        return l(), n(document).bind("mouseup.jsp", u), !1
                    }
                })
            }

            function wi() {
                g && g.unbind("mousedown.jsp");
                d && d.unbind("mousedown.jsp")
            }

            function bi() {
                n("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");
                v && v.removeClass("jspActive");
                y && y.removeClass("jspActive")
            }

            function ot(i, u) {
                var f;
                if (b && (0 > i ? i = 0 : i > w && (i = w), f = new n.Event("jsp-will-scroll-y"), t.trigger(f, [i]), !f.isDefaultPrevented())) {
                    var o = i || 0, s = 0 === o, h = o == w, y = i / w, a = -y * (l - e);
                    void 0 === u && (u = r.animateScroll);
                    u ? c.animate(v, "top", i, ei, function () {
                        t.trigger("jsp-user-scroll-y", [-a, s, h])
                    }) : (v.css("top", i), ei(i), t.trigger("jsp-user-scroll-y", [-a, s, h]))
                }
            }

            function ei(n) {
                void 0 === n && (n = v.position().top);
                f.scrollTop(0);
                s = n || 0;
                var i = 0 === s, r = s == w, h = n / w, o = -h * (l - e);
                (ti != i || ri != r) && (ti = i, ri = r, t.trigger("jsp-arrow-change", [ti, ri, ii, ui]));
                rr(i, r);
                u.css("top", o);
                t.trigger("jsp-scroll-y", [-o, i, r]).trigger("scroll")
            }

            function ht(i, u) {
                var f;
                if (p && (0 > i ? i = 0 : i > k && (i = k), f = new n.Event("jsp-will-scroll-x"), t.trigger(f, [i]), !f.isDefaultPrevented())) {
                    var e = i || 0, s = 0 === e, h = e == k, v = i / k, l = -v * (a - o);
                    void 0 === u && (u = r.animateScroll);
                    u ? c.animate(y, "left", i, oi, function () {
                        t.trigger("jsp-user-scroll-x", [-l, s, h])
                    }) : (y.css("left", i), oi(i), t.trigger("jsp-user-scroll-x", [-l, s, h]))
                }
            }

            function oi(n) {
                void 0 === n && (n = y.position().left);
                f.scrollTop(0);
                h = n || 0;
                var i = 0 === h, r = h == k, s = n / k, e = -s * (a - o);
                (ii != i || ui != r) && (ii = i, ui = r, t.trigger("jsp-arrow-change", [ti, ri, ii, ui]));
                ur(i, r);
                u.css("left", e);
                t.trigger("jsp-scroll-x", [-e, i, r]).trigger("scroll")
            }

            function rr(n, t) {
                r.showArrows && (yt[n ? "addClass" : "removeClass"]("jspDisabled"), pt[t ? "addClass" : "removeClass"]("jspDisabled"))
            }

            function ur(n, t) {
                r.showArrows && (wt[n ? "addClass" : "removeClass"]("jspDisabled"), bt[t ? "addClass" : "removeClass"]("jspDisabled"))
            }

            function tt(n, t) {
                var i = n / (l - e);
                ot(i * w, t)
            }

            function ct(n, t) {
                var i = n / (a - o);
                ht(i * k, t)
            }

            function kt(t, i, u) {
                var s, v, y, p, w, b, k, l, a, h = 0, c = 0;
                try {
                    s = n(t)
                } catch (d) {
                    return
                }
                for (v = s.outerHeight(), y = s.outerWidth(), f.scrollTop(0), f.scrollLeft(0); !s.is(".jspPane");) if (h += s.position().top, c += s.position().left, s = s.offsetParent(), /^body|html$/i.test(s[0].nodeName)) return;
                p = rt();
                b = p + e;
                p > h || i ? l = h - r.horizontalGutter : h + v > b && (l = h - e + v + r.horizontalGutter);
                isNaN(l) || tt(l, u);
                w = it();
                k = w + o;
                w > c || i ? a = c - r.horizontalGutter : c + y > k && (a = c - o + y + r.horizontalGutter);
                isNaN(a) || ct(a, u)
            }

            function it() {
                return -u.position().left
            }

            function rt() {
                return -u.position().top
            }

            function fr() {
                var n = l - e;
                return n > 20 && n - rt() < 10
            }

            function er() {
                var n = a - o;
                return n > 20 && n - it() < 10
            }

            function or() {
                f.unbind(ai).bind(ai, function (n, t, i, u) {
                    h || (h = 0);
                    s || (s = 0);
                    var e = h, o = s, f = n.deltaFactor || r.mouseWheelSpeed;
                    return c.scrollBy(i * f, -u * f, !1), e == h && o == s
                })
            }

            function sr() {
                f.unbind(ai)
            }

            function lt() {
                return !1
            }

            function hr() {
                u.find(":input,a").unbind("focus.jsp").bind("focus.jsp", function (n) {
                    kt(n.target, !1)
                })
            }

            function cr() {
                u.find(":input,a").unbind("focus.jsp")
            }

            function lr() {
                function v() {
                    var n = h, t = s;
                    switch (i) {
                        case 40:
                            c.scrollByY(r.keyboardSpeed, !1);
                            break;
                        case 38:
                            c.scrollByY(-r.keyboardSpeed, !1);
                            break;
                        case 34:
                        case 32:
                            c.scrollByY(e * r.scrollPagePercent, !1);
                            break;
                        case 33:
                            c.scrollByY(-e * r.scrollPagePercent, !1);
                            break;
                        case 39:
                            c.scrollByX(r.keyboardSpeed, !1);
                            break;
                        case 37:
                            c.scrollByX(-r.keyboardSpeed, !1)
                    }
                    return a = n != h || t != s
                }

                var i, a, o = [];
                p && o.push(ni[0]);
                b && o.push(gt[0]);
                u.bind("focus.jsp", function () {
                    t.focus()
                });
                t.attr("tabindex", 0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp", function (t) {
                    if (t.target === this || o.length && n(t.target).closest(o).length) {
                        var r = h, u = s;
                        switch (t.keyCode) {
                            case 40:
                            case 38:
                            case 34:
                            case 32:
                            case 33:
                            case 39:
                            case 37:
                                i = t.keyCode;
                                v();
                                break;
                            case 35:
                                tt(l - e);
                                i = null;
                                break;
                            case 36:
                                tt(0);
                                i = null
                        }
                        return a = t.keyCode == i && r != h || u != s, !a
                    }
                }).bind("keypress.jsp", function (t) {
                    return t.keyCode == i && v(), t.target === this || o.length && n(t.target).closest(o).length ? !a : void 0
                });
                r.hideFocus ? (t.css("outline", "none"), "hideFocus" in f[0] && t.attr("hideFocus", !0)) : (t.css("outline", ""), "hideFocus" in f[0] && t.attr("hideFocus", !1))
            }

            function ar() {
                t.attr("tabindex", "-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp");
                u.unbind(".jsp")
            }

            function vr() {
                if (location.hash && location.hash.length > 1) {
                    var t, r, i = escape(location.hash.substr(1));
                    try {
                        t = n("#" + i + ', a[name="' + i + '"]')
                    } catch (e) {
                        return
                    }
                    t.length && u.find(i) && (0 === f.scrollTop() ? r = setInterval(function () {
                        f.scrollTop() > 0 && (kt(t, !0), n(document).scrollTop(f.position().top), clearInterval(r))
                    }, 50) : (kt(t, !0), n(document).scrollTop(f.position().top)))
                }
            }

            function yr() {
                n(document.body).data("jspHijack") || (n(document.body).data("jspHijack", !0), n(document.body).delegate('a[href*="#"]', "click", function (t) {
                    var u, i, r, o, f, e, h = this.href.substr(0, this.href.indexOf("#")), s = location.href;
                    if (-1 !== location.href.indexOf("#") && (s = location.href.substr(0, location.href.indexOf("#"))), h === s) {
                        u = escape(this.href.substr(this.href.indexOf("#") + 1));
                        try {
                            i = n("#" + u + ', a[name="' + u + '"]')
                        } catch (c) {
                            return
                        }
                        i.length && (r = i.closest(".jspScrollable"), o = r.data("jsp"), o.scrollToElement(i, !0), r[0].scrollIntoView && (f = n(window).scrollTop(), e = i.offset().top, (f > e || e > f + n(window).height()) && r[0].scrollIntoView()), t.preventDefault())
                    }
                }))
            }

            function pr() {
                var u, e, t, i, n, r = !1;
                f.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp", function (f) {
                    var o = f.originalEvent.touches[0];
                    u = it();
                    e = rt();
                    t = o.pageX;
                    i = o.pageY;
                    n = !1;
                    r = !0
                }).bind("touchmove.jsp", function (f) {
                    if (r) {
                        var o = f.originalEvent.touches[0], l = h, a = s;
                        return c.scrollTo(u + t - o.pageX, e + i - o.pageY), n = n || Math.abs(t - o.pageX) > 5 || Math.abs(i - o.pageY) > 5, l == h && a == s
                    }
                }).bind("touchend.jsp", function () {
                    r = !1
                }).bind("click.jsp-touchclick", function () {
                    if (n) return (n = !1, !1)
                })
            }

            function wr() {
                var n = rt(), i = it();
                t.removeClass("jspScrollable").unbind(".jsp");
                u.unbind(".jsp");
                t.replaceWith(li.append(u.children()));
                li.scrollTop(n);
                li.scrollLeft(i);
                vt && clearInterval(vt)
            }

            var r, u, o, e, f, a, l, si, dt, b, p, v, w, s, y, k, h, gt, d, hi, at, ut, yt, pt, ni, g, st, ft, wt, bt,
                vt, ci, et, ki, c = this, ti = !0, ii = !0, ri = !1, ui = !1, li = t.clone(!1, !1).empty(),
                ai = n.fn.mwheelIntent ? "mwheelIntent.jsp" : "mousewheel.jsp";
            "border-box" === t.css("box-sizing") ? (ci = 0, et = 0) : (ci = t.css("paddingTop") + " " + t.css("paddingRight") + " " + t.css("paddingBottom") + " " + t.css("paddingLeft"), et = (parseInt(t.css("paddingLeft"), 10) || 0) + (parseInt(t.css("paddingRight"), 10) || 0));
            n.extend(c, {
                reinitialise: function (t) {
                    t = n.extend({}, r, t);
                    fi(t)
                }, scrollToElement: function (n, t, i) {
                    kt(n, t, i)
                }, scrollTo: function (n, t, i) {
                    ct(n, i);
                    tt(t, i)
                }, scrollToX: function (n, t) {
                    ct(n, t)
                }, scrollToY: function (n, t) {
                    tt(n, t)
                }, scrollToPercentX: function (n, t) {
                    ct(n * (a - o), t)
                }, scrollToPercentY: function (n, t) {
                    tt(n * (l - e), t)
                }, scrollBy: function (n, t, i) {
                    c.scrollByX(n, i);
                    c.scrollByY(t, i)
                }, scrollByX: function (n, t) {
                    var i = it() + Math[0 > n ? "floor" : "ceil"](n), r = i / (a - o);
                    ht(r * k, t)
                }, scrollByY: function (n, t) {
                    var i = rt() + Math[0 > n ? "floor" : "ceil"](n), r = i / (l - e);
                    ot(r * w, t)
                }, positionDragX: function (n, t) {
                    ht(n, t)
                }, positionDragY: function (n, t) {
                    ot(n, t)
                }, animate: function (n, t, i, u, f) {
                    var e = {};
                    e[t] = i;
                    n.animate(e, {duration: r.animateDuration, easing: r.animateEase, queue: !1, step: u, complete: f})
                }, getContentPositionX: function () {
                    return it()
                }, getContentPositionY: function () {
                    return rt()
                }, getContentWidth: function () {
                    return a
                }, getContentHeight: function () {
                    return l
                }, getPercentScrolledX: function () {
                    return it() / (a - o)
                }, getPercentScrolledY: function () {
                    return rt() / (l - e)
                }, getIsScrollableH: function () {
                    return p
                }, getIsScrollableV: function () {
                    return b
                }, getContentPane: function () {
                    return u
                }, scrollToBottom: function (n) {
                    ot(w, n)
                }, hijackInternalLinks: n.noop, destroy: function () {
                    wr()
                }
            });
            fi(i)
        }

        return t = n.extend({}, n.fn.jScrollPane.defaults, t), n.each(["arrowButtonSpeed", "trackClickSpeed", "keyboardSpeed"], function () {
            t[this] = t[this] || t.speed
        }), this.each(function () {
            var r = n(this), u = r.data("jsp");
            u ? u.reinitialise(t) : (n("script", r).filter('[type="text/javascript"],:not([type])').remove(), u = new i(r, t), r.data("jsp", u))
        })
    };
    n.fn.jScrollPane.defaults = {
        showArrows: !1,
        maintainPosition: !0,
        stickToBottom: !1,
        stickToRight: !1,
        clickOnTrack: !0,
        autoReinitialise: !1,
        autoReinitialiseDelay: 500,
        verticalDragMinHeight: 0,
        verticalDragMaxHeight: 99999,
        horizontalDragMinWidth: 0,
        horizontalDragMaxWidth: 99999,
        contentWidth: void 0,
        animateScroll: !1,
        animateDuration: 300,
        animateEase: "linear",
        hijackInternalLinks: !1,
        verticalGutter: 4,
        horizontalGutter: 4,
        mouseWheelSpeed: 3,
        arrowButtonSpeed: 0,
        arrowRepeatFreq: 50,
        arrowScrollOnHover: !1,
        trackClickSpeed: 0,
        trackClickRepeatFreq: 70,
        verticalArrowPositions: "split",
        horizontalArrowPositions: "split",
        enableKeyboardNavigation: !0,
        hideFocus: !1,
        keyboardSpeed: 0,
        initialDelay: 300,
        speed: 30,
        scrollPagePercent: .8
    }
}), function (n) {
    typeof define == "function" && define.amd ? define(["jquery"], n) : typeof exports == "object" ? module.exports = n(require("jquery")) : n(jQuery)
}(function (n) {
    function i(n) {
        return t.raw ? n : encodeURIComponent(n)
    }

    function f(n) {
        return t.raw ? n : decodeURIComponent(n)
    }

    function e(n) {
        return i(t.json ? JSON.stringify(n) : String(n))
    }

    function o(n) {
        n.indexOf('"') === 0 && (n = n.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
        try {
            return n = decodeURIComponent(n.replace(u, " ")), t.json ? JSON.parse(n) : n
        } catch (i) {
        }
    }

    function r(i, r) {
        var u = t.raw ? i : o(i);
        return n.isFunction(r) ? r(u) : u
    }

    var u = /\+/g, t = n.cookie = function (u, o, s) {
        var v, c;
        if (arguments.length > 1 && !n.isFunction(o)) return s = n.extend({}, t.defaults, s), typeof s.expires == "number" && (v = s.expires, c = s.expires = new Date, c.setMilliseconds(c.getMilliseconds() + v * 864e5)), document.cookie = [i(u), "=", e(o), s.expires ? "; expires=" + s.expires.toUTCString() : "", s.path ? "; path=" + s.path : "", s.domain ? "; domain=" + s.domain : "", s.secure ? "; secure" : ""].join("");
        for (var l = u ? undefined : {}, y = document.cookie ? document.cookie.split("; ") : [], a = 0, b = y.length; a < b; a++) {
            var p = y[a].split("="), w = f(p.shift()), h = p.join("=");
            if (u === w) {
                l = r(h, o);
                break
            }
            u || (h = r(h)) === undefined || (l[w] = h)
        }
        return l
    };
    t.defaults = {};
    n.removeCookie = function (t, i) {
        return n.cookie(t, "", n.extend({}, i, {expires: -1})), !n.cookie(t)
    }
});
var jq = $.noConflict(), pane_;
jq(document).ready(function () {
    function l() {
        if (jq(".pointer").length) {
            var n = jq(".pointer").outerHeight(), t = jq(".currentSlideText").outerHeight(), i = (t - n) / 2;
            jq(".currentSlideText .pointer").css("top", i + "px")
        }
    }

    function nt() {
        r == !0 ? jq("#imgSlideFooterText").html(jq(".currentSlideText").html()).fadeIn(400) : setTimeout(function () {
            jq("#imgSlideFooterText").html(jq(".currentSlideText").html()).fadeIn(400)
        }, 200);
        jq(".scroller #imgLink").attr("href", jq(".currentSlideText").find("a").attr("href"))
    }

    function tt() {
        r == !0 ? (currentSlideText = jq(".currentSlideText").removeClass("currentSlideText").next().addClass("currentSlideText").prev().detach().appendTo(".eventsScrollLinks"), nt(), setTimeout(function () {
            jq(".eventsScrollLinks .sfContentBlock:last-child").show()
        }, 500)) : (jq(".eventsScrollLinks .sfContentBlock:last-child").hasClass("currentSlideText") ? (jq("span.pointer").remove(), jq(".currentSlideText").removeClass("currentSlideText"), jq(".eventsScrollLinks .sfContentBlock").first().addClass("currentSlideText").append("<span class='pointer'><\/span>"), l()) : (jq("span.pointer").remove(), jq(".currentSlideText").removeClass("currentSlideText").next().addClass("currentSlideText").append("<span class='pointer'><\/span>"), l()), nt())
    }

    function st() {
        var n = jq(".currentSlide"), t = jq(".currentSlideText");
        n.fadeOut(1e3).removeClass("currentSlide").next().addClass("currentSlide").fadeIn(1e3);
        jq("#imgSlideFooterText").fadeOut(200);
        setTimeout(function () {
            jq(".currentSlide").prev().detach().appendTo(".eventsScrollImagesHolder div[id^='MainContent']")
        }, 200);
        r == !0 ? t.slideUp(500, function () {
            tt()
        }) : tt()
    }

    function rt() {
        it = setInterval(function () {
            st()
        }, 6e3)
    }

    var e, a, v, u, y, t, w, o, b, f, s, n, i, d, et, c, g, r, it, ot;
    jq(".visual .slide-item, .further-info, .visual-section > div, .image-block, .image-box, .study-section .box, .main-banner, .info-banner .bg-image, .stvideoListItem .img").each(function () {
        var n = jq(this).find("> img");
        n.length && jq(this).css("background-image", "url(" + n.attr("src") + ")")
    });
    jq(".further-info > div").each(function () {
        var n = jq(this).find("> img");
        n.length && (jq(this).parent().css("background-image", "url(" + n.attr("src") + ")"), n.hide())
    });
    jq(".further-info > div > div").each(function () {
        var n = jq(this).find("> img");
        n.length && (jq(this).parent().parent().css("background-image", "url(" + n.attr("src") + ")"), n.hide())
    });
    jq(".visual-section > div > div,.testimonialContainer").each(function () {
        var n = jq(this).find("img");
        n.length && (jq(this).css("background-image", "url(" + n.attr("src") + ")"), n.hide())
    });
    jq.trim(jq(".visual-section").html()).length == 0 && jq(".visual-section").hide();
    jq(".action-boxes, .courses-area").each(function () {
        var n = jq(this);
        n.text().replace(/\s|&nbsp;/g, "").length == 0 && n.hide()
    });
    e = jq(".study-section .box-picture").find("img");
    e.length && (jq(".study-section .box-picture").find("img").hide(), jq(".study-section .box-picture").css("background-image", "url(" + e.attr("src") + ")"));
    jq("body").hasClass("sfPageEditor") || jq("#menuButtons").length > 0 && (a = '<div class="col-md-4">' + jq("#menuButtons").html() + "<\/div>", jq(".dropdown-menu").length > 0 && (v = jq(".dropdown-menu").find(".col-md-4").last(), v.after(a)));
    jq(".visual, .visual-section-slider, .testimonials-slider").slick({
        arrows: !1,
        dots: !0,
        autoplay: !0,
        autoplaySpeed: 5e3
    });
    jq("#header .base-navbar").affix({offset: {top: 40}});
    jq("body").on("mouseenter", "#header .main-nav .dropdown", function () {
        timer = setTimeout(function () {
            jq("body").hasClass("drop-open") || (jq("body").addClass("drop-open"), jq(".fader").fadeIn(300))
        }, 200)
    }).on("mouseleave", "#header .main-nav .dropdown", function () {
        clearTimeout(timer);
        jq("body").hasClass("drop-open") && (jq("body").removeClass("drop-open"), jq(".fader").fadeOut(100))
    });
    if (!jq(".sfPageWrapper").length > 0) {
        jq(".nav.navbar-nav.main-nav").children("li:has(ul)").addClass("dropdown");
        t = jq("#main-nav .navbar-collapse").clone();
        t.appendTo("#header");
        t.attr("id", "mobile-menu").removeClass("navbar-collapse");
        t.find(".nav").removeClass("nav navbar-nav main-nav");
        t.find(".dropdown-menu").removeClass("dropdown-menu");
        t.mmenu({
            offCanvas: {position: "right"},
            navbar: {titleLink: "anchor"},
            navbars: [{
                position: "top",
                content: ['<a href="#" class="navbar-toggle"><span class="icon-bar"><\/span><span class="icon-bar"><\/span><span class="icon-bar"><\/span><span class="sr-only">Toggle navigation<\/span><\/a>', '<a href="#" class="btn-back">Back<\/a>']
            }]
        });
        u = t.data("mmenu");
        u.bind("openPanel", function (n) {
            y = n;
            p()
        }).bind("closePanel", function () {
            p()
        });
        t.find(".navbar-toggle").on("click", function (n) {
            n.preventDefault();
            u.close()
        });
        t.find(".btn-back").on("click", function (n) {
            n.preventDefault();
            y.find("> .mm-navbar > .mm-prev").click()
        });

        function p() {
            t.find(".mm-current").is(".mm-panels > div:first-child") ? t.removeClass("show-back") : t.addClass("show-back")
        }

        jq(".modal-search").on("shown.bs.modal", function () {
            u.close()
        })
    }
    jq(".modal-fullvideo").on("shown.bs.modal", function () {
        var n = jq(this).find("video")
    }).on("hidden.bs.modal", function () {
        var n = jq(this).find("video");
        o.modalVideo.pauseVideo()
    });
    o = {};
  /*  b = function () {
        jq(".ytplayer").each(function () {
            o[this.id] = new YT.Player(this.id)
        })
    };
    jq.getScript("//www.youtube.com/player_api", function () {
        w = setInterval(function () {
            typeof YT == "object" && (b(), clearInterval(w))
        }, 500)
    });*/
    jq("#side-menu").length && jq("body").scrollspy({
        target: "#side-menu",
        offset: jq("#header .base-navbar").outerHeight()
    });
    jq(".side-menu").affix({offset: {top: 0}});
    jq("#side-menu a").on("click", function (n) {
        n.preventDefault();
        var t = jq(this).attr("href"),
            i = t === "#" ? 0 : jq(t).offset().top - jq("#header .navbar-collapse").outerHeight();
        jq("html, body").stop().animate({scrollTop: i}, 500)
    });
    jq(window).on("resize", function () {
        jq("#side-menu").length && jq("body").scrollspy("refresh")
    });
    jq(".course-info .course-head").has(".img").addClass("with-img");
    jq(".sfFormDropdown.type3 select").addClass("cs3");
    customForm.lib.domReady(function () {
        customForm.customForms.replaceAll()
    });
    jq(".unit-item").each(function () {
        jq(this).parent().next().find(".unit-item").addClass("with-border")
    });
    jq(".module-box").each(function () {
        jq(this).find("h3").nextAll().hide()
    });
    jq(".module-box").find("h3").click(function () {
        jq(this).children(".fa").toggleClass("fa-plus fa-minus");
        jq(this).nextAll().slideToggle();
        jq(this).parent(".module-box").css("height", "auto")
    });
    jq(".images-slideshow").slick({
        dots: !1,
        arrows: !1,
        infinite: !0,
        speed: 500,
        fade: !0,
        slidesToShow: 1,
        slidesToScroll: 1,
        autoplay: !0,
        useCSS: !1,
        autoplaySpeed: 5e3,
        cssEase: "linear"
    });
    jq('<a href="#" class="slideshow-arrow slideshow-prev">Prev Slide<\/a><a href="#" class="slideshow-arrow slideshow-next">Next Slide<\/a>').prependTo(".images-slideshow .image-block figcaption");
    jq(".images-slideshow .slideshow-prev").click(function () {
        return jq(".images-slideshow").slick("slickPrev"), !1
    });
    jq(".images-slideshow .slideshow-next").click(function () {
        return jq(".images-slideshow").slick("slickNext"), !1
    });
    jq('<i class="bull"><\/i>').appendTo(".panel-group .panel-title a");
    jq(".main-form.faqs a i.bull").each(function () {
        var n = $(this).parent("a").text();
        n = n.trim().replace(/^\W|\W$/, "");
        n = n.replace(/\W+|\s+/g, "-");
        $(this).attr("id", n)
    });
    jq(".second-nav li").has("ul").addClass("has-drop");
    jq(".second-nav .has-drop > div > a").append('<span class="opener">Open Drop<\/span>');
    setEqHeight();
    jq(".alumni-section .gallery-box .slide, .courses-area .box.image, .person-box .photo").each(function () {
        jq(this).find("> img").length && jq(this).css("background-image", "url(" + jq(this).find("> img").attr("src") + ")").find("> img").hide()
    });
    jq(".testimonial-section,.action-boxes .box.image, .events-section .event-box,.events-section .box.instagram, .article-item .img").each(function () {
        jq(this).find("img").length && jq(this).css("background-image", "url(" + jq(this).find("img").attr("src") + ")").find("img").hide()
    });
    jq(".box-item").not(".big-box").find(".info-banner").each(function () {
        jq(this).children(".img").children().length && jq(this).css("background-image", "url(" + jq(this).children(".img").children().attr("src") + ")").children(".img").hide()
    });
    jq(".about-boxes .box-item, .about-boxes .sf_colsIn.box").each(function () {
        jq(this).children().children("img").length && jq(this).css("background-image", "url(" + jq(this).children().children("img").attr("src") + ")").children().children("img").hide()
    });
    f = "";
    jq(".about-list li div").each(function () {
        jq(this).attr("data-placeholder-label") !== "undefined" && (f = jq(this).text())
    });
    jq(window).width() < 768 && !jq(".about-list").hasClass("slick-initialized") && f == "" && jq(".about-list").slick({
        infinite: !0,
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: !0,
        adaptiveHeight: !0,
        slide: ".about-list > li"
    });
    jq(window).resize(function () {
        setEqHeight();
        jq(window).width() < 768 && !jq(".about-list").hasClass("slick-initialized") && f == "" ? jq(".about-list").slick({
            infinite: !0,
            slidesToShow: 1,
            slidesToScroll: 1,
            arrows: !0,
            adaptiveHeight: !0,
            slide: ".about-list > li"
        }) : jq(window).width() > 768 && jq(".about-list").hasClass("slick-initialized") && jq(".about-list").slick("unslick").removeClass("slick-initialized")
    });
    jq(".gallery-box").slick({infinite: !0, fade: !0, speed: 1e3});
    jq(".job-slider").slick({
        infinite: !0,
        slidesToShow: 3,
        slidesToScroll: 1,
        speed: 500,
        responsive: [{breakpoint: 768, settings: {slidesToShow: 1, slidesToScroll: 1}}]
    });
    jq(".action-boxes .box h3").click(function () {
        if (!jq(this).parent().is("a")) if (jq(window).width() < 768) {
            var n = jq(this).closest(".box-item");
            n.hasClass("active") ? n.removeClass("active").find(".drop-holder").slideUp(300) : (n.addClass("active").find(".drop-holder").slideDown(300), n.siblings(".active").removeClass("active").find(".drop-holder").slideUp(300), setTimeout(function () {
                jq(".job-slider").slick("unslick").slick("reinit")
            }, 50), pane_.reinitialise())
        } else return !1
    });
    pane_ = jq(".news-rotator .track").jScrollPane({showArrows: !0}).data("jsp");
    s = 50;
    jq(".news-rotator .btn-next").on("click", function (n) {
        pane_.scrollByY(s);
        n.preventDefault()
    });
    jq(".news-rotator .btn-prev").on("click", function (n) {
        pane_.scrollByY(-s);
        n.preventDefault()
    });
    jq("#sliderDDL").on("change", function () {
        jq(".sliderButtons").children().hide();
        jq("#" + this.value).fadeIn()
    });
    if (jq(".box-item").each(function () {
        var n = jq(this).find(".box"), t = jq(this).find(".info-banner");
        jq(n).hasClass("hidden-xs") && jq(this).addClass("hidden-xs");
        jq(n).hasClass("hidden-sm") && jq(this).addClass("hidden-sm");
        jq(t).hasClass("hidden-xs") && jq(this).addClass("hidden-xs");
        jq(t).hasClass("hidden-sm") && jq(this).addClass("hidden-sm")
    }), jq(".sfPageWrapper").length == 0 && (jq(".events-slider > div").slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: !1,
        fade: !0,
        asNavFor: ".events-nav",
        infinite: !0,
        speed: 500,
        autoplay: !0,
        useCSS: !1,
        autoplaySpeed: 5e3,
        cssEase: "linear"
    }), jq(".events-nav").slick({
        slidesToShow: 4,
        slidesToScroll: 1,
        asNavFor: ".events-slider > div",
        dots: !1,
        centerMode: !1,
        focusOnSelect: !0,
        adaptiveHeight: !0,
        vertical: !0,
        arrows: !1,
        responsive: [{breakpoint: 1500, settings: {slidesToShow: 3, dots: !1}}]
    })), jq("#modal-video-01").length > 0 && jq(".sfPageWrapper").length == 0) {
        n = jq("#modalVideo").attr("src");
        jq("#modal-video-01").on("hide.bs.modal", function () {
            jq("#modalVideo").attr("src", "")
        });
        jq("#modal-video-01").on("show.bs.modal", function () {
            jq("#modalVideo").attr("src", n)
        })
    }
    jq(".circle").length > 0 && jq(".sfPageWrapper").length == 0 && jq(".circle").each(function () {
        var n = jq(this);
        n.children().html().replace(/\s|&nbsp;/g, "").length == 0 && n.hide()
    });
    jq(".well.course-box").length > 0 && jq(".sfPageWrapper").length == 0 && jq(".well.course-box").each(function () {
        var n = jq(this);
        n.children().children("div").text().replace(/\s|&nbsp;/g, "").length == 0 && n.hide()
    });
    jq(".article-item").length > 0 && jq(".sfPageWrapper").length == 0 && jq(".article-item").each(function () {
        var n = jq(this);
        console.log(n.find("div").text().replace(/\s|&nbsp;/g, "").length);
        n.find(".entity").children("div").text().replace(/\s|&nbsp;/g, "").length == 0 && n.hide()
    });
    jq(".unit-section, .about-list").length > 0 && jq(".sfPageWrapper").length == 0 && jq(".unit-section, .about-list").each(function () {
        var n = jq(this);
        n.text().replace(/\s|&nbsp;/g, "").length == 0 && n.hide()
    });
    jq("#mobile-menu > .mm-navbar-top").prepend(jq("#header .top-nav .mylibf-link").clone());
    jq("body").on("click", ".navbar-form.search-form a.btn-default", function () {
        jq('input[id$="SearchTextBoxTxt"').val("");
        setTimeout(function () {
            jq('input[id$="SearchTextBoxTxt"').focus()
        }, 600)
    });
    jq(".sfFormsEditor .sfFormSubmit input").click(function () {
        jq("html, body").delay(100).animate({scrollTop: jq(this).parents(".sfFormsEditor").first().offset().top - jq("#main-nav").height()}, 0)
    });
    jq(".sfFormsEditor .sfSuccess").is(":visible") && jq("html, body").animate({scrollTop: jq(".sfSuccess").parents(".sfFormsEditor").first().offset().top - jq("#main-nav").height()}, 0);
    jq('a[href^="tel:"]').each(function () {
        var n = jq(this).text();
        jq(this).addClass("tel-no");
        jq(this).after(jq("<span>", {text: n, "class": "tel-no"}))
    });
    jq(".search-results .sfnewsSummary").length && jq(".search-results .sfnewsSummary").each(function () {
        var n = jq(this).text(), t = (n.match(/[@#$%=]/g) || []).length;
        t > 10 && jq(this).remove()
    });
    window.location.href.toLowerCase() == "http://www.libf.ac.uk/news-and-insights/insights" && window.performance.navigation.type == 2 && window.location.reload();
    jq(window).scroll(function () {
        jq(".side-menu.color3 .nav > li > a:focus").blur()
    });
    n = window.location.href.toLowerCase();
    i = n.split("-in-category");
    i[0].indexOf("/page/") > -1 && (i[0] = i[0].substring(0, i[0].indexOf("/page/")));
    var h = /\/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/, k = /\/[a-z]{1,}\/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/, ut = n.split(n.match(h)),
        ft = n.split(n.match(k));
    jq(".newsBox").wrapAll("<div id='newsHolder' />");
    jq(".filterCategories").length && (n.indexOf("-in-category") > -1 ? (jq(".filterCategories").prepend("<a href='" + i[0] + "' class='newsHomeLink'>View all blogs<\/a>"), jq(".filterCategories").css("height", "80px")) : n.match(k) ? (jq(".filterCategories").prepend("<a href='" + ft[0] + "' class='newsHomeLink'>View all blogs<\/a>"), jq(".filterCategories").css("height", "80px"), jq(".filterCategories ul").css("margin-left", "0")) : n.match(h) && (jq(".filterCategories").prepend("<a href='" + ut[0] + "' class='newsHomeLink'>View all blogs<\/a>"), jq(".filterCategories").css("height", "80px")));
    n.indexOf("-in-category") > -1 ? (d = n.substring(n.lastIndexOf("/") + 1, n.length).replace(/-/g, "").toLowerCase(), et = jq("a.newsHomeLink").prop("href"), jq(".filterCategories ul li a").each(function () {
        if (jq(this).text().replace(/ /g, "").toLowerCase().indexOf(d) > -1) {
            var n = jq(this).parent().detach();
            jq(".filterCategories ul").closest("ul").prepend(n);
            jq(this).removeAttr("href")
        }
    }), c = n.indexOf("/-in-category"), g = n.substring(c, c.length), jq(".newsPager a").each(function () {
        var n = jq(this).prop("href");
        jq(this).attr("href", n + g)
    })) : jq(".filterCategories ul.sftaxonHorizontalList").prepend("<li>Please select a topic<\/li>");
    n.match(h) && jq(".filterCategories ul li a").each(function () {
        var n = jq(this).prop("href"), t = n.indexOf("/-in-category"), i = n.substring(t, n.length),
            r = jq("a.newsHomeLink").prop("href");
        jq(this).attr("href", r + i)
    });
    jq(".filterCategories ul.sftaxonHorizontalList li:first-child").append("<span class='ddlArrow'>&#9656;<\/span>");
    jq(".newsBox").length && jq(".newsBox").each(function () {
        var t;
        jq(this).find("#spanPublicationDate2").append("&nbsp;&nbsp;|&nbsp;");
        var n = jq(this).find(".image-box");
        typeof n.find("img.thumb").prop("src") != typeof undefined && n.find("img.thumb").prop("src").match(/.jpg|.jpeg|.png|.gif/) || n.find("img.thumb").prop("src") !== "" && n.find("img.thumb").prop("src").match(/.jpg|.jpeg|.png|.gif/) ? n.css("background-image", "url('" + n.find("img.thumb").prop("src") + "')") : (typeof n.find("img.mainImage").prop("src") != typeof undefined && n.find("img.mainImage").prop("src").match(/.jpg|.jpeg|.png|.gif/) || n.find("img.mainImage").prop("src") !== "" && n.find("img.mainImage").prop("src").match(/.jpg|.jpeg|.png|.gif/)) && n.css("background-image", "url('" + n.find("img.mainImage").prop("src") + "')");
        (typeof n.find("img.thumb").prop("src") == typeof undefined || n.find("img.thumb").attr("src") == "") && (typeof n.find("img.mainImage").prop("src") == typeof undefined || n.find("img.mainImage").attr("src") == "") ? n.remove() : jq(this).find(".news-box").remove();
        t = jq(this).find(".insightsDocLink").attr("href");
        t !== "" && jq(this).find(".btn-arrow").attr("href", t).attr("target", "_blank");
        jq(this).find(".insightsDocLink").remove()
    });
    jq(document).on("click", function (n) {
        jq(n.target).closest(".filterCategories").length || jq(".filterCategories ul").removeClass("filterCategoriesExpanded")
    });
    jq(".filterCategories ul.sftaxonHorizontalList").click(function () {
        jq(this).toggleClass("filterCategoriesExpanded");
        var n = jq(".ddlArrow");
        jq(".filterCategories ul").hasClass("filterCategoriesExpanded") ? n.html("&#9662;") : n.html("&#9656;")
    });
    jq(".sfContentBlock.section2buttons").length && jq(".sfContentBlock.section2buttons").attr("id", "section2buttons");
    r = !1;
    jq(".eventsScrollImagesHolder").append("<div class='imgCover'><\/div>").append("<h2 class='mobileHomeEventsHeader'>Events<h2>");
    jq(".eventsScrollImagesHolder .sfimageWrp").first().addClass("currentSlide");
    n.indexOf("/action/edit") > -1 ? (jq(".scroller").css("overflow", "scroll"), jq(".eventsScrollImagesHolder .sfimageWrp").show(), jq(".eventsScrollImagesHolder .sfimageWrp img").css("height", "100px")) : (jq(".eventsScrollLinksHolder").outerHeight() > jq(".scroller").outerHeight() && (jq(".eventsScrollLinks .sfContentBlock").each(function () {
        jq(this).clone().appendTo(".eventsScrollLinks").removeClass("currentSlideText")
    }), r = !0), jq(".eventsScrollImagesHolder .sfimageWrp").each(function () {
        var n = jq(this).find("img");
        jq(this).css({
            "background-image": "url(" + n.attr("src") + ")",
            "background-size": "cover",
            "background-position": "30%",
            "background-repeat": "no-repeat"
        });
        n.hide()
    }));
    jq(".eventsScrollLinks .sfContentBlock").first().addClass("currentSlideText");
    r == !0 ? jq(".eventsScrollLinks").prepend("<span class='pointer'><\/span>") : (jq(".currentSlideText").append("<span class='pointer'><\/span>"), l());
    jq("#imgSlideFooterText").html(jq(".currentSlideText").html()).remove(".pointer");
    jq(".scroller #imgLink").attr("href", jq(".currentSlideText a").attr("href"));
    ot = 0;
    rt();
    jq(".scroller").stop().hover(function () {
        clearInterval(it)
    }, function () {
        rt()
    });
    jq(".resource-item").find(".holder").find("a").click(function () {
        var t = jq(this).attr("href"), i, r, n, u, f, e, o, s;
        jq(".resources-register-text").length && (jq(".resources-register-text").attr("href", ""), jq(".resources-register-text").attr("href", t));
        i = jq(this).closest(".holder").children(".sfnewsTitle").text();
        jq("#hdnDetailUrl").val(t);
        jq("#hdnResourceName").val(i);
        r = jq(this).closest("li").find("#hdnDataCapture").val();
        r == "3" ? jq(".resources-register-text").parent().addClass("hidden") : jq(".resources-register-text").parent().removeClass("hidden");
        n = jq("#resourceModal");
        u = jq(this).closest("li").find("[id*=hdnShowCompanySchool]").val();
        u.toLowerCase() == "false" ? jq(".company-school-txt").hide() : jq(".company-school-txt").show();
        f = jq(this).closest("li").find("[id*=hdnShowJobTitle]").val();
        f.toLowerCase() == "false" ? jq(".job-title-txt").hide() : jq(".job-title-txt").show();
        e = jq(this).closest("li").find("[id*=hdnShowLocation]").val();
        e.toLowerCase() == "false" ? jq(".location-txt").hide() : jq(".location-txt").show();
        o = jq(this).closest("li").find("[id*=hdnFormTitle]").val();
        n.find(".modal-title").text(o);
        s = jq(this).closest("li").find("[id*=hdnFormLink]").val();
        n.find(".resources-register-text").text(s)
    });
    jq("body").on("click", ".resources-register-text", function (n) {
        n.preventDefault();
        var t = jq(this).attr("href");
        jq("#resourceModal").modal("hide");
        window.location.href = t
    });
    jq(".resource-submit-btn").click(function () {
        Page_ClientValidate("resourceModal") && (checkCookie(), jq("#resourceModal").modal("hide"))
    })
});
jq(window).load(function () {
    var i, n, u;
    if (setEqHeight(), i = window.location.href.toLowerCase(), i.indexOf("/action/edit") == -1) {
        var r = jq.cookie("UserCookiePref"), t = jq("#cookieHolder"), f = jq.cookie("_ga"),
            e = jq.cookie("_gat_UA-9616667-29");
        r == null ? (t.delay(1e3).slideToggle(500), jq.cookie("UserCookiePref", "1", {
            expires: 365,
            path: "/",
            domain: ".libf.ac.uk"
        })) : (t.hide(), jq("#setCookiesEnabled").prop("checked", !0));
        jq(".cookieBtnContinue").click(function () {
            t.hide()
        });
        r == "0" && (jq.cookie("_ga", null, {
            expires: -1,
            path: "/",
            domain: ".libf.ac.uk"
        }), jq.cookie("_gat", null, {
            expires: -1,
            path: "/",
            domain: ".libf.ac.uk"
        }), jq("#setCookiesDisabled").prop("checked", !0));
        jq("body").on("click", "#setCookiesDisabled", function () {
            jq.cookie("UserCookiePref", "0", {expires: 365, path: "/", domain: ".libf.ac.uk"});
            jq.cookie("_ga", null, {expires: -1, path: "/", domain: ".libf.ac.uk"});
            jq.cookie("_gat", null, {expires: -1, path: "/", domain: ".libf.ac.uk"})
        });
        jq("body").on("click", "#setCookiesEnabled", function () {
            jq.cookie("UserCookiePref", "1", {expires: 365, path: "/", domain: ".libf.ac.uk"})
        })
    }
    n = new Date;
    n = Date.parse(n);
    u = Date.parse("10/27/2017 21:05");
    n < u ? jq(".pDownTime").show() : jq(".pDownTime").hide()
});
jq(window).load(function () {
    setHeightImageWidgetCell()
});
jq(window).resize(function () {
    setHeightImageWidgetCell();
    jq(".news-rotator").length && pane_.reinitialise()
})